javascript - jQuery 选择器 $ ('#foo a' ) 是如何计算的?

标签 javascript jquery performance jquery-selectors sizzle

作为 jQuery 代码 ( https://coderwall.com/p/7uchvg ) 的示例,我读到表达式 $('#foo a'); 的行为如下:

Find every a in the page and then filter a inside #foo.

而且看起来效率不高。

这样对吗?如果是,我们应该如何以更好的方式做到这一点?

最佳答案

这是正确的 - Sizzle(jQuery 的选择器引擎)表现出 same way as CSS selectors . CSS 和 Sizzle 选择器是 evaluated right-to-left ,因此 #foo a 将找到所有 a 节点,然后通过从 #foo 下降的节点过滤这些节点。

您可以通过确保您的叶选择器具有高特异性来改善这一点,通常是通过给它们一个类或 ID。

关于javascript - jQuery 选择器 $ ('#foo a' ) 是如何计算的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13678702/

相关文章:

javascript - 如何使输入值得到验证?

javascript - 如何使用 javascript 将图像转换为音频?

javascript - 保证获取类实例的方法?

javascript - 为什么我不能使用 Bootstrap 在 WordPress 主题的这个导航菜单中使用 data-div?

jquery - 如何让文本框中只允许有一个小数点分隔符?

javascript - 从 chrome(扩展)发送更快的 POST 请求

sql - 如何在 Rails 控制台中测试添加索引的性能?

javascript - React+gsap 使用随机动画元素组完成后无法工作?

javascript - 将多个点击处理程序合并为一个

javascript - Ember.js 观察者在异步更新后不触发