【问题标题】:Why doesn't $("div[id*='\\|']") work in IE8 or IE9?为什么 $("div[id*='\\|']") 在 IE8 或 IE9 中不起作用?
【发布时间】:2011-08-17 15:52:33
【问题描述】:

有没有人遇到过 IE8 和 IE9 无法使用转义特殊字符的 jQuery 选择器?

这是我要查找的 div:

<div id="hello|12345"></div>

这是我用来查找它的 jQuery 选择器:$("div[id*='\\|']")

结果是找不到,我也不知道为什么。这是一个如此简单的选择器,根据http://api.jquery.com/category/selectors/,使用\\ 是逃避| 的正确方法。这当然适用于 Firefox 和 Chrome。

【问题讨论】:

标签: jquery jquery-selectors internet-explorer-8 internet-explorer-9


【解决方案1】:

只要我使用 1.3.2 之后的 jQuery 版本,它就可以在 IE 9 中使用:

http://jsfiddle.net/ZXPyW/

您使用的是旧版本吗?如果可以,可以升级吗?

【讨论】:

    【解决方案2】:

    jQuery 使用此正则表达式来解析 [attr=value] 条件的值部分。所以你不能在id中使用它。无论如何,它不会按照标准在 id 中使用。

    (['"]*)(.*?)\3|)\s*\]

    【讨论】:

      【解决方案3】:

      这两个反斜杠实际上是不必要的。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2013-10-23
        • 2013-03-16
        • 1970-01-01
        • 2013-09-07
        • 1970-01-01
        • 2013-02-13
        • 1970-01-01
        相关资源
        最近更新 更多