jQuery选择器:哪一个抓取子对象的子集更快?
关于这个问题,我有以下两个选择:jQuery选择器:哪一个抓取子对象的子集更快?,jquery,performance,dom,jquery-selectors,Jquery,Performance,Dom,Jquery Selectors,关于这个问题,我有以下两个选择: $("tr td").slice(3, 6); 可能是这样的(从算法上讲,我的意思是;我知道为每个元素创建新的查询字符串有点傻): var子集=$(“trtd:n个子项(4)”); 对于(var i=4;i第一个($(“tr td”).slice(3,6))将执行得更快,因为它是一个单一的选择器引擎调用,但一如既往,请测试它 我设置了一个性能测试,这样您就可以在这里自己检查这两个(以及其他答案):在第一个代码中,您计算$('tr td')一次,然后得到一个片段
$("tr td").slice(3, 6);
可能是这样的(从算法上讲,我的意思是;我知道为每个元素创建新的查询字符串有点傻):
var子集=$(“trtd:n个子项(4)”);
对于(var i=4;i第一个($(“tr td”).slice(3,6)
)将执行得更快,因为它是一个单一的选择器引擎调用,但一如既往,请测试它
我设置了一个性能测试,这样您就可以在这里自己检查这两个(以及其他答案):在第一个代码中,您计算$('tr td')
一次,然后得到一个片段
在第2个代码中,计算$('tr td')
4次,然后每次提取第4到第7个子项
因此,第一个代码更快。事实上,它也更容易阅读。我认为必须有人是jQuery的主要贡献者,才能真正回答这个问题而不进行检查。对它进行基准测试?在我看来,您可能需要一个
子选择器,因此jQuery只查找
$(“tr>td”)
的直接子代是的,但我说的是算法性能。我想我假设每个查询都会取出每个元素,就好像只是引用数组中的一个元素一样。
var subset = $( "tr td:nth-child(4)" );
for(var i=4; i<7; i++) subset.add( "tr td:nth-child("+i+")" );