.find()比基本后代选择方法快吗?

在Paul Irish的博客中提到的幻灯片30:

$('#container').find('div.robotarm')$('#container div.robotarm')

这是真的?

也许在早期版本的jQuery中就是这种情况。 但是,表达

 $('#container div.robotarm') 

通过jQuery规范化

 $('#container').find('div.robotarm') 

所以$('#container div.robotarm')应该更慢的唯一原因是因为函数调用开销。 但是,这真的是一个微不足道的差异。

如果该调用未规范化,则会使用sizzle (Resigs css选择器引擎)来查找该元素(从右到左)。 那当然会慢得多。

既然你要求意见,那没关系。

你总是可以想出一个案例,在某个DOM的某个配置下,某个浏览器在某些浏览器中比另一个运行得更快。 不需要分裂头发。

这仅在按ID搜索时才是正确的。

但是当我们按标签名称搜索时,它会在现代浏览器中返回不同的结果,其中$('div').find('p')$('div p')慢,因为后者使用querySelector()