我听说第二种语法要快得多。对吗?
$('div *')
或
$('div').find('*')
还是两者耗时相等?
编辑:
好吧,失望的人,让我们看看这个测试(感谢@AlienWebguy)。有人能解释一下吗?
确切的结果可能取决于页面HTML和特定的选择器查询,但是这个jsperf说,在我选择的HTML情况下,$('div').find('*')
比$('div *')
慢得多。
对于这样一个有意义的问题,你必须指定一个精确的选择器和一个你要运行它的HTML体。
现在您已经添加了一个使用一些特定HTML(但不同的选择器)的测试,我想我会根据您在测试中询问的实际选择器运行该测试中的HTML,该测试实际测试您所询问的内容。在Chrome 13中,我发现$('div *')
选择器9倍快比$('div').find('*')
在测试中对HTML运行时。您可以在这里看到jsperf
在Chrome 10中,我没有得到与jfriend00相同的结果
当我尝试DotNET Ninja给出的测试时,$('#div').find('*')
比$('#div *')
快 61%。就我对jquery的理解而言,它更快,因为$('#div *')
被解释为$('#div').find('*')
,所以这需要更长的时间。
但是jquery选择器已经被jquery开发人员优化了,你可能不会得到每个选择器组合的相同结果。