我听说,第二种语法要快得多。这样对吗?
$('div *')
或
$('div').find('*')
或者两者都是平等的时间?
修改
好吧,downvoters,让我们看看TEST(感谢@AlienWebguy)。有人可以解释一下吗?
答案 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开发人员优化了,你可能无法为每个选择器组合得到相同的结果。