2

来自文档:

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

但是当我们写一些选择器时;

$('#a .b .c')

或者

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

等等

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

请让我清楚这个解析机制。

4

1 回答 1

5

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

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

于 2012-09-18T07:07:10.673 回答