在用户脚本中使用querySelector()
vs jQuery的$()
有什么好处吗?我希望该脚本适用于支持用户脚本的所有主流浏览器,因此我对跨浏览器兼容性特别感兴趣。
我开始怀疑这个因为我注意到 honestbleeps'优秀的 Reddit Enhancement Suite 包含jQuery作为依赖项,但大多数都坚持querySelector()
来选择元素和其他用于DOM操作的基本JavaScript方法。
这只是一个品味问题,还是有理由将jQuery的使用保持在最低限度?
答案 0 :(得分:3)
使用querySelector()
或querySelectorAll()
的唯一原因是,如果您不使用jQuery。与高级CSS选择器相比,jQuery选择器更强大,更有可能在浏览器中执行一致。
也就是说,包括jQuery可能会使简单脚本不必要地复杂化。它需要在大多数浏览器上使用脚本注入 - 这会破坏沙箱,产生潜在的冲突,并使您的脚本依赖于第三方服务器。 Here is a cross-browser way to include jQuery that minimizes conflicts. And, if the browser supports local jQuery copies, it doesn't require a third-party server to always be up/fast.
如果脚本很简单,你可以毫不费力地避免使用jQuery,那就使用querySelector()
。您的脚本将在99%以上的时间内适用于所有可脚本化的浏览器。
如果脚本无论如何加载jQuery,请使用jQuery选择器以获得最大的功能和一致性。
请注意,对于除最基本的DOM操作之外的任何操作,jQuery通常都是值得的。对于Firefox + Greasemonkey或Chrome + Tampermonkey,如果@require
it使用jQuery几乎没有任何缺点。
答案 1 :(得分:1)
querySelector
is not supported in some browser versions,而jQuery的$()
是。