关注this问题,我有以下两个选项:
$("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+")" );
哪个会更有效率?会有另一种更有效的解决方案吗?
答案 0 :(得分:3)
第一个($("tr td").slice(3, 6)
)的执行速度要快得多,因为它是单个选择器引擎调用,但一如既往,请测试它!
我设置了一个性能测试,您可以在此处自行检查(和其他答案):http://jsperf.com/slice-performance-test
答案 1 :(得分:0)
在第一段代码中,您计算一次$('tr td')
并获得切片。
在第二个代码中,您计算$('tr td')
4次,然后每次提取第4个到第7个孩子。
因此第一个代码更快。事实上,它也更容易阅读。