4
上this問題的後續行動,我有以下2個選項:jQuery選擇器:抓取子集的子集更快?
$("tr td").slice(3, 6);
,可能是這樣的(算法來說,我的意思是,我知道作出新的查詢字符串的每個元素是有點傻):
var subset = $("tr td:nth-child(4)");
for(var i=4; i<7; i++) subset.add("tr td:nth-child("+i+")");
哪個更有效?會有另一種更有效的解決方案嗎?
我認爲有人必須成爲jQuery的主要貢獻者才能真正能夠在不檢查的情況下做出回答。基準嗎? – Matchu 2010-10-11 12:58:27
在我看來,你會希望在那裏有一個'>'子選擇器,所以jQuery只查找'
是的,的確如此。 – Hamster 2010-10-11 13:10:29
回答
第一個(
$("tr td").slice(3, 6)
)執行速度會快得多,因爲它是單個選擇器引擎調用,但是與往常一樣,請對其進行測試!我在這裏設立一個性能測試,因此您可以檢查這兩個(和其他答案)自己:http://jsperf.com/slice-performance-test
來源
2010-10-11 12:59:35
有趣的網站。 – Hamster 2010-10-11 13:05:39
在第1碼,你計算
$('tr td')
一次得到片。在第二個代碼中,您計算
$('tr td')
4次,然後在每次提取第4到第7個孩子。因此,第一個代碼更快。事實上,閱讀也更容易。
來源
2010-10-11 12:59:42 kennytm
是的,但我在談論算法性能。我想我假設每個查詢將獲取每個元素,就好像簡單地引用數組中的元素一樣。 – Hamster 2010-10-11 13:09:51
相關問題