jQuery 选择器:为什么 $("#id").find("p") 比 $("#id p") 更快

2024-05-21

该页面的作者:http://24ways.org/2011/your-jquery-now-with-less-suck http://24ways.org/2011/your-jquery-now-with-less-suck断言 jQuery 选择器$('#id').find('p')$('#id p'),尽管如果我理解正确的话,可能会产生相同的结果。造成这种差异的原因是什么?


Because $('#id').find('p')被优化以执行...

document.getElementById('id').getElementsByTagName('p');

...而我猜测$('#id p')将使用querySelectorAll如果可用,或者基于 JavaScript 的选择器引擎(如果没有)。


您应该注意,不同浏览器的性能总是存在差异。 Opera 以其速度极快而闻名querySelectorAll.

此外,不同版本的 jQuery 可能会提出不同的优化。

可能是这样$('#id p')(或目前是)给予与第一个版本相同的优化。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

jQuery 选择器:为什么 $("#id").find("p") 比 $("#id p") 更快 的相关文章

随机推荐