gpt4 book ai didi

javascript - jquery $ selector 在 querySelector 不可用之前是如何定义的?

转载 作者:行者123 更新时间:2023-11-28 16:28:52 24 4
gpt4 key购买 nike

我一直在网上搜索,例如here ,关于 jquery $ 函数实际上是如何定义的。那就是如何用普通的 javascript 实现 jquery 选择器的相同功能?

到处都说 jquery 使用 document.querySelectorAll()。即 $ 可能定义如下:

function $(mystring) {
return document.querySelectorAll(mystring);
}

这是一个很好的解释。但我的问题是,当浏览器中没有 querySelectorAll 时,jquery 使用了什么?没有 querySelector 怎么可能像我们在 css 中那样选择元素?例如。 .container .row { ... } 在 css 中选择每个具有 row 类的元素,它位于具有 container 类的元素内。但在纯 JavaScript 中,我们只有 document.getElementByIddocument.getElementsByClassName

我看到 jquery 唯一的选择是使用正则表达式或将 mystring 传递给各种条件,例如检查第一个字符是#还是.,是否有空格>~ mystring 中的关键字,然后相应地使用 Node.childNodes 返回正确的元素。

最佳答案

正如评论所说,jQuery 是建立在 Sizzle JS 之上的具有复杂选择器算法的引擎。

你可以在这里看到它在 jQuery 1 中的使用:

http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.js

搜索 Expr = Sizzle.selectors = {

即使现在 jQuery 只是简单地使用 Sizzle,但是考虑到 querySelectorAll 的使用,Sizzle 变得更加复杂。

关于javascript - jquery $ selector 在 querySelector 不可用之前是如何定义的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39979816/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com