如果JQuery的.find()比.filter()快?

时间:2014-08-01 11:37:14

标签: javascript jquery performance

我想知道哪种方式最快,因为我自己并不知道如何测试效果。

<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(){
}); 

我正在写一条深刻的道路,因为我的真实代码非常复杂,我需要具体。 什么应该最快?

1 个答案:

答案 0 :(得分:1)

亲眼看看:http://jsperf.com/jquery-so-selection-nesting

设置性能测试非常简单。我建议你自己搞砸了。但是,请确保首先获得预期的结果。我已经编辑了您的一个示例,以便它返回相同的数据(尽管我还没有对它进行过测试)。

从我得到的结果来看,在查看您的具体尝试时,使用filter似乎比使用querySelectorAll更快。通过不做过长而复杂的选择器,你应该能够更快地重构它们。