作为 jQuery 代码 ( https://coderwall.com/p/7uchvg ) 的示例,我读到表达式 $('#foo a');
的行为如下:
Find every
a
in the page and then filtera
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/