jquery选择器速度

时间:2009-10-12 20:31:25

标签: jquery css-selectors

这两个中哪一个更好/更快?

var a = $('.listItem', $('#myList'));

VS

var a = $('#myList .listItem');

4 个答案:

答案 0 :(得分:5)

首先,你以奇怪的方式做了错误。它应该是:

var a = $('.listItem', '#myList');

而且according to Resigfind()方法在大多数情况下被证明是最快的:

var a = $("#myList").find(".listItem");

答案 1 :(得分:3)

要知道的唯一真正的方法是对它们进行分析,这实际上是唯一可以给出问题的答案。自context works best when it is an element and not a jQuery object以来第一次出现轻微的性能影响。

答案 2 :(得分:0)

第二个肯定更容易阅读,并使代码更容易维护。

......在我看来,它会让事情变得更好。

它们都应该产生类似的性能结果。

答案 3 :(得分:0)

记录,

var a = $('.listItem',$('#myList'));

的表现与:

完全相同
var a = $('#myList').find('.listItem');

在我的测试中,这是最快的

var a = $('#myList > .listItem');

哦,并且:

var a = $('.listItem', '#myList');

完全 错误。(编辑)与第一个示例相同。


修改

我是个白痴。最后一个示例完全与第一个示例在功能方面相同。至于速度,我不能说。我的猜测是,因为在第一个例子中,jQuery对象已经具有选择器要求的元素,它将比仍然必须找到元素的最后一个示例稍快。