3 回答

TA貢獻(xiàn)1898條經(jīng)驗(yàn) 獲得超8個(gè)贊
毫無疑問,首先按標(biāo)記名稱進(jìn)行過濾比按類名過濾要快得多。
在所有瀏覽器本地實(shí)現(xiàn)getElementsByClassName之前都會(huì)出現(xiàn)這種情況,就像getElementsByTagName的情況一樣。

TA貢獻(xiàn)1847條經(jīng)驗(yàn) 獲得超11個(gè)贊
在某些情況下,您可以通過限制其上下文來加速查詢。如果您有元素引用,則可以將其作為第二個(gè)參數(shù)傳遞以限制查詢的范圍:
$(".myclass", a_DOM_element);
應(yīng)該比快
$(".myclass");
如果你已經(jīng)有一個(gè)_DOM_element并且它明顯小于整個(gè)文檔。

TA貢獻(xiàn)1848條經(jīng)驗(yàn) 獲得超6個(gè)贊
正如Reid所說,jQuery是自下而上的。雖然
這意味著
$('#foo bar div')
慢很多$('bar div #foo')
這不是重點(diǎn)。如果你有,#foo
你不會(huì)在選擇器中放任何東西,因?yàn)镮D必須是唯一的。
重點(diǎn)是:
如果你從帶有ID的元素中選擇任何東西,那么先選擇后面的,然后再使用
.find
,.children
等等:$('#foo').find('div')
您最左邊(第一)選擇的部分可以是效率較低縮放到最右邊(最后)的一部分應(yīng)該是最有效的-這意味著,如果你沒有一個(gè)ID確保你正在尋找
$('div.common[slow*=Search] input.rare')
,而不是$('div.rare input.common[name*=slowSearch]')
-因?yàn)檫@ISN” t始終適用確保通過相應(yīng)的分割強(qiáng)制選擇器順序。
添加回答
舉報(bào)