例如,当我们使用 时$('div span')
,jQuery 是如何为我们做这样的搜索的?
它是先搜索span
元素还是先搜索div
?
好像jQuery官网对这些东西没有解释;它只是向我们展示了通过 API 可以使用哪些功能。
我想知道每种类型的 jQuery 选择器是如何实现的,所以我可以选择最好的选择器来使用。
你知道我在哪里可以得到这样的信息吗?
例如,当我们使用 时$('div span')
,jQuery 是如何为我们做这样的搜索的?
它是先搜索span
元素还是先搜索div
?
好像jQuery官网对这些东西没有解释;它只是向我们展示了通过 API 可以使用哪些功能。
我想知道每种类型的 jQuery 选择器是如何实现的,所以我可以选择最好的选择器来使用。
你知道我在哪里可以得到这样的信息吗?
概括地说,你需要知道的:
:first-child
更快。:first
您也可以阅读官方 Sizzle 文档,但它并没有真正讨论优化技术。
它首先搜索span
元素。它将选择器解析为:
对于第一部分,它可以使用该getElementsByTagName
方法查找所有span
元素,然后它必须遍历每个元素的祖先以查找div
元素。
寻找最简单的地方是直接从源头阅读。从 jquery 站点下载 uncompresserd 源并从原始源中读取它的作用和顺序。
正如@Juhana所评论的,如果您想了解 jQuery 用于根据其选择器选择对象的具体方法,请查看 github 存储库:
https://github.com/jquery/jquery/
或者,查看未压缩的 jQuery 下载中提供的源代码:
如果您只想知道有哪些不同的选择器可供您使用,jQuery 在这里提供了它们的列表:
它们是从右到左解析的。
请参阅http://csswizardry.com/2011/09/writing-efficient-css-selectors/和为什么浏览器从右到左匹配 CSS 选择器?