Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/75.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/performance/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
jQuery选择器:哪一个抓取子对象的子集更快?_Jquery_Performance_Dom_Jquery Selectors - Fatal编程技术网

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+")" );