jQuery:选择器解析机制

标签 jquery jquery-selectors

来自文档:

$(selector, context) 内部实现了 .find() 方法。

但是当我们编写一些像这样的选择器时;

$('#a.b.c')

$('#a > .b > .c')

等等

这是否实现了.find()方法?或者 jQuery 用于此目的的其他机制。

请解释一下这个解析机制。

最佳答案

现代实现会将选择器交给 document.querySelectorAll(),浏览器将尝试将其解析为 CSS 选择器(假设它有效)。

如果做不到这一点,jQuery 就会退回到它自己的选择器引擎 Sizzle ,它在实现后代和同级选择器时使用内部方法和计算来遍历 DOM,这些选择器很可能使用 .find() 这样的方法,因为这会导致不必要的开销。

关于jQuery:选择器解析机制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12471959/

相关文章:

javascript - 如何从ajax响应中取出 header

jQuery 动画到 div 中的下一个图像

javascript - 如何将参数从html传递给jQuery

带有 nth-of-type() 的 jQuery 选择器

Click 上的 Jquery 动态选择器

jquery - 如何在Jquery中使用触发器传递参数数据以及控制(this)

jquery - 如何从 jQuery 选择器中排除 $(this)?

JavaScript Regex - 自定义字符和数字

javascript - 为什么满足if条件后还要进入else部分?

jquery - 使用 jQuery-UI 的文件输入按钮样式