Как использовать символ амперсанда (&) внутри селекторов jQuery - PullRequest
4 голосов
/ 16 февраля 2012

У меня есть меню <select> с кучей тегов <option>, все они заполняются из таблицы базы данных.

Мне нужно использовать селектор jquery, например $('option[value=d&c]'), чтобы найти опциюнапример, такой:

<option value="d&c">d&amp;c</option>

Обратите внимание, что атрибут value не содержит закодированный амперсанд (&amp;), а только прямой амперсанд (&) из-за заполнения Zend Frameworkit.

Единственная проблема в том, что jQuery задыхается со следующей ошибкой:

uncaught exception: Syntax error, unrecognized expression: [value=d&c]

Он также не примет $('option[value=d&amp;c]').Это амперсанд и все портит, в любом случае.Кто-нибудь знает, как обойти это ограничение?

Ответы [ 3 ]

9 голосов
/ 16 февраля 2012

Вы пропустили кавычки вокруг значения

Это работает:

$('option[value="d&c"]')

jsFiddle

6 голосов
/ 16 февраля 2012

Попробуйте экранировать его ...

$('option[value=d\\&c]')

jsFiddle .

... или используйте кавычки, что рекомендуется в документации.

1 голос
/ 16 февраля 2012

Работает, когда вы устанавливаете значение параметра в кавычках:

$(function() {
    alert($("option[value='d&c']").text());       
});

http://jsfiddle.net/fGTRv/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...