在提到的Paul Irish's blog中滑动30:
$('#container').find('div.robotarm')
比$('#container div.robotarm')
这是真的吗?
答案 0 :(得分:5)
也许在早期版本的jQuery中就是这种情况。但是,表达式
$('#container div.robotarm')
通过jQuery规范化为
$('#container').find('div.robotarm')
因此$('#container div.robotarm')
应该更慢的唯一原因是函数调用开销。但是,这确实是一个微不足道的差异。
如果该调用未规范化,sizzle
(Resigs css选择器引擎)将用于查找该元素(从右到左)。那当然会慢得多。
答案 1 :(得分:2)
既然你提出了意见,那就无所谓了。
在DOM的某个配置下,您总是可以想出一个在某些浏览器中运行速度比另一个快的情况。不需要分裂头发。
答案 2 :(得分:1)
只有按ID搜索才能正确。
但是,当我们按标记名称搜索时,它会在$('div').find('p')
比$('div p')
慢的现代浏览器中返回不同的结果,因为后者使用querySelector()
。