我想知道哪种方式最快,因为我自己并不知道如何测试效果。
<div id="test1">
<div id="test2">
<div id="test3">
<a class="a">asd</a>
<a class="b">asd</a>
<a class="c">asd</a>
</div>
</div>
</div>
对于这个例子,我想得到.a和.b
$('#test1 #test2 #test3 .a, #test1 #test2 #test3 .b').each(function(){
});
OR
$('#test1 #test2 #test3 a').find('.a, .b').each(function(){
});
OR
$('#test1 #test2 #test3 a').filter('.a, .b').each(function(){
});
我正在写一条深刻的道路,因为我的真实代码非常复杂,我需要具体。 什么应该最快?
答案 0 :(得分:1)
亲眼看看:http://jsperf.com/jquery-so-selection-nesting
设置性能测试非常简单。我建议你自己搞砸了。但是,请确保首先获得预期的结果。我已经编辑了您的一个示例,以便它返回相同的数据(尽管我还没有对它进行过测试)。
从我得到的结果来看,在查看您的具体尝试时,使用filter
似乎比使用querySelectorAll
更快。通过不做过长而复杂的选择器,你应该能够更快地重构它们。