为什么$(“div [id * ='\\ |']”)不能在IE8或IE9中运行?

时间:2011-08-17 15:52:34

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

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

这是我想要找到的div:

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

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

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

3 个答案:

答案 0 :(得分:1)

只要我在1.3.2之后使用jQuery版本,它在IE 9中适用于我:

http://jsfiddle.net/ZXPyW/

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

答案 1 :(得分:1)

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

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

答案 2 :(得分:0)

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