这些语法之一是否更快或两者都相等?

时间:2011-08-09 06:18:07

标签: jquery

我听说,第二种语法要快得多。这样对吗?

$('div *')

$('div').find('*')

或者两者都是平等的时间?

修改
好吧,downvoters,让我们看看TEST(感谢@AlienWebguy)。有人可以解释一下吗?

2 个答案:

答案 0 :(得分:3)

确切的结果可能取决于网页HTML和特定的选择器查询,但this jsperf表示$('div').find('*')比我选择的HTML案例中的$('div *')慢一些。

对于这样一个有意义的问题,你必须指定一个精确的选择器和一个你将要运行它的HTML体。

现在您已经添加了一个使用某些特定HTML(但是使用不同的选择器)的测试,我想我会在测试中针对您在实际测试中询问的实际选择器运行HTML测试你的问题。在Chrome 13中,当您在测试中针对HTML运行时,我发现$('div *')选择器$('div').find('*') <强> 9倍。您可以看到jsperf here

答案 1 :(得分:1)

在Chrome 10中,我得到的结果与jfriend00不同。

当我尝试DotNET Ninja给出的测试时,$('#div').find('*')$('#div *') 快61%。据我了解jquery,它更快,因为$('#div *') 解释$('#div').find('*')所以这需要更长的时间。

但是jquery选择器已经被jquery开发人员优化了,你可能无法为每个选择器组合得到相同的结果。