这两个中哪一个更好/更快?
var a = $('.listItem', $('#myList'));
VS
var a = $('#myList .listItem');
答案 0 :(得分:5)
首先,你以奇怪的方式做了错误。它应该是:
var a = $('.listItem', '#myList');
而且according to Resig,find()
方法在大多数情况下被证明是最快的:
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对象已经具有选择器要求的元素,它将比仍然必须找到元素的最后一个示例稍快。