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

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

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

【问题讨论】:

标签: javascript cross-browser selectors-api


【解决方案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').
        猜你喜欢
        • 1970-01-01
        • 2011-09-15
        • 1970-01-01
        • 2021-08-13
        • 1970-01-01
        • 1970-01-01
        • 2015-10-29
        • 2011-06-21
        • 2013-02-17
        相关资源
        最近更新 更多