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
相关问题