所有浏览器都支持 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 [关闭]