2013-02-13 46 views
1

我有一個簡單的性能問題。jquery.val()vs底層元素值性能

哪個更好

var elem = jQuery("#idOfMyElem"), y; 
if (elem.length) { 
    y = elem.val(); 
    // y = elem[0].value; 
} 

哪一個性能更好? elem.val()或elem [0] .value;

+5

性能問題應始終通過運行測試來評估。使用jsPerf.com構建相關測試。另外,如果您想要獲得最佳性能,請在第一行中避免使用jQuery。使用'document.getElementById()'來代替,因爲這可能是一個事件更大的區別。 – jfriend00 2013-02-13 17:10:53

回答

3

Here是一個簡單的測試。 據此,y = elem.val()y = elem[0].value要慢90%

4

這一個:

var elem = document.getElementById('idOfMyElem'), y; 

if (elem) { 
    y = elem.value; 
} 

$(elem).on('click', function() { ... }) 
+0

嗨,謝謝,但我需要jquery elem因爲我打算用它來做其他的事情。就像添加事件監聽器一樣。 – 2013-02-13 17:12:50

+0

然後將其包裝 - > $(elem)。 – adeneo 2013-02-13 17:14:33

+0

@ user578635 - performancewise,當通過ID獲取元素時,您可能永遠不會注意到其中的差異,並且始終堅持使用jQuery通常是讓代碼更易讀並且以後更易於理解的好主意。使用本地值和val()也是同樣的,差別在於minescule,所以你認爲它更可讀。 – adeneo 2013-02-13 17:17:25

相關問題