所有浏览器都支持 querySelector 吗?

Posted

技术标签:

【中文标题】所有浏览器都支持 querySelector 吗?【英文标题】:Is querySelector supported by all browsers? 【发布时间】:2011-04-20 20:31:47 【问题描述】:

我想知道所有浏览器都支持 querySelector 吗?不是它可以使用的替代品吗?

我已经用 IE8、FF3、Chrome 4 对其进行了测试。对我来说没问题。我没有旧的浏览器。所以我想知道旧浏览器是否会给我带来问题?

【问题讨论】:

2017 年更新:querySelector() 是 very widely supported。继续使用吧! 【参考方案1】:

IE7

基本上没有统一的基于表达式的 DOM 方法,绝对最好的选择是使用库(无处不在的“使用 jquery”答案,但如果您对大文件有疑问,至少应该查看 Sizzle图书馆),因为滚动你自己的努力比合理的值得(我根据经验说话)。

【讨论】:

+1 提到 Sizzle,jQuery 和 Prototype 使用的小型选择器引擎 另一个值得一提的选择器引擎:NWMatcher。 Sizzle 声称“CCS3 合规性”,但有known problems。 2016 年更新:,只需使用document.querySelector()! :) @rinogo:不,SAP 浏览器不支持。 @StefanSteiger - 我不熟悉 SAP 浏览器。你有这个浏览器的市场份额数据吗?如今(2017 年),querySelector() 是 very widely supported。【参考方案2】:

Firefox 3.1+、IE8+(仅在 IE8 标准模式下)和 Safari 3.1+ 浏览器支持 QuerySelector。

supporting article

【讨论】:

【参考方案3】:

我使用 FireFox 对其进行了测试 - 效果很好。 在 IE 中,当您使用具有 quirk 模式的文档(不使用 DOCTYPE html)时会出现问题

尝试在 HTML 文档中使用

【讨论】:

【参考方案4】:

您可以查看 MDN 了解详细信息。

| Feature       | Chrome |  Firefox (Gecko) | Internet Explorer | Opera | Safari (WebKit) |
| ------------- | ------ | ---------------- | ----------------- | ----- | --------------- |
| Basic support |   1    |  3.5             |   8               | 10    |   3.2           |

【讨论】:

【参考方案5】:

最好的替代方法是使用第三方库,将所有讨厌的浏览器特定代码抽象出来,例如 YUI 或 jQuery(我对 Prototype 等人不太熟悉,所以我不能确定它是否使用query* 方法[如果可用])。

【讨论】:

PrototypeJS 不使用 CSS 查询选择包装 DOM。它更像是对 javascript 的扩展,因为它使用 ID 名称作为选择器。示例: ~ $('customerOrders').

以上是关于所有浏览器都支持 querySelector 吗?的主要内容,如果未能解决你的问题,请参考以下文章

重要选择器querySelector和querySelectorAll

所有浏览器都支持视频吗?

原生DOM选择器querySelector和querySelectorAll

querySelector 与 getElementById [关闭]

前端强大的javascript原生选择器querySelector 和 querySelectorAll

js高级选择器querySelector和querySelectorAll