5

在用户脚本中使用querySelector()vs jQuery有什么好处$()吗?我希望该脚本在所有支持用户脚本的主流浏览器中都能工作,所以我对跨浏览器兼容性特别感兴趣。

我开始对此感到疑惑,因为我注意到Honestbleeps出色的Reddit Enhancement Suite包含jQuery 作为依赖项,但主要querySelector()用于选择元素和其他用于DOM 操作的基本JavaScript 方法。

这只是品味问题,还是有理由将 jQuery 的使用保持在最低限度?

4

2 回答 2

4

使用querySelector()or的唯一原因querySelectorAll()是您不使用 jQuery。与高级 CSS 选择器相比,jQuery 选择器更强大,并且更有可能在浏览器中始终如一地执行。

也就是说,包括 jQuery 会使简单的脚本不必要地复杂化。它需要在大多数浏览器上进行脚本注入——这会破坏沙盒,产生潜在的冲突,并使您的脚本依赖于第三方服务器。
这是一种包含 jQuery 的跨浏览器方法,可以最大限度地减少冲突。而且,如果浏览器支持本地 jQuery 副本,则不需要第三方服务器始终处于启动/快速状态。

如果脚本很简单并且您可以轻松避免使用 jQuery,请使用querySelector(). 您的脚本将在所有支持脚本的浏览器上运行,99% 以上的时间。

如果脚本仍然加载 jQuery,请使用 jQuery 选择器以获得最大的功能和一致性。

请注意,除了最基本的 DOM 操作之外,jQuery 通常是物有所值的。对于 Firefox+Greasemonkey 或 Chrome+Tampermonkey,如果你使用 jQuery,几乎没有@require缺点

于 2013-02-09T01:03:44.603 回答
1

querySelector 某些浏览器版本不支持,而 jQuery支持$()

于 2013-02-09T00:24:23.843 回答