Почему $ ("div [id * = '\\ |']") не работает в IE8 или IE9? - PullRequest
2 голосов
/ 17 августа 2011

Кто-нибудь когда-либо имел опыт, когда IE8 и IE9 не будут работать с селектором jQuery, где экранируется специальный символ?

Это div, который я хочу найти:

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

И это селектор jQuery, который я использую, чтобы найти его: $("div[id*='\\|']")

В результате он не найден, и я понятия не имею, почему. Это такой простой селектор, и в соответствии с http://api.jquery.com/category/selectors/, использование \\ является правильным способом избежать |. Это, конечно, прекрасно работает в Firefox и Chrome.

Ответы [ 3 ]

1 голос
/ 17 августа 2011

jQuery использует это регулярное выражение для анализа части значения условия [attr = value]. Таким образом, вы не можете использовать его в id. В любом случае он не должен использоваться в идентификаторе согласно стандарту.

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

1 голос
/ 17 августа 2011

Это работает для меня в IE 9, пока я использую версию jQuery после 1.3.2:

http://jsfiddle.net/ZXPyW/

Вы используете старую версию?Если да, можете ли вы обновить?

0 голосов
/ 29 августа 2012

Две обратные косые черты фактически не нужны.

...