2012-02-20 2 views
10

У меня есть следующие HTML элемент:Как выбрать элементы по значению атрибута, когда значения содержат знак доллара?

<input type="checkbox" name="ctl00$ContentPH$ucFuncionEdit1$ckEsMenu" /> 

Как я могу выбрать все элементы с таким же именем, используя JQuery, следующий сбой:

jQuery('[name=ctl00$ContentPH$ucFuncionEdit1$ckEsMenu]'); 

Предыдущая строка кода поднять следующее сообщение об ошибке:

Error: Syntax error, unrecognized expression: [name=ctl00$$ContentPH$$ucFuncionEdit1$$ckEsMenu]

ответ

14

Вы приводите значение:

jQuery ('[name="ctl00$ContentPH$ucFuncionEdit1$ckEsMenu"]'); 

При использовании селекторов атрибутов лучше всегда указывать значение (хотя, если значение представляет собой одно слово, содержащее , только буквы AZ [регистр нечувствителен] и цифры 0-9 [но не начинаются с цифры ], вы можете уйти без).

+1

Для простых вопросов, простых ответов :) –

0

вы говорите так идентификатору клиента, вы можете это сделать 2-мя способами: 1. , когда ваш код JS в одной и той же странице, где ваш HTML:

jQuery('#<%=ckEsMenu.ClientID%>').click(); 

2. когда ваш код JS в separeted файле :

jQuery("input[id$=ckEsMenu]").click(); 
+0

Спасибо, но я не использую JS на одной странице, это плохая практика, вместо этого я использую ее внизу моей главной страницы через ' '. И селектор 'jQuery (" input [id $ = ckEsMenu] ")' не является пуленепробиваемым, приведет к проблеме, если у вас есть два идентификатора, заканчивающиеся на «ckEsMenu». –

+0

вы используете два элемента с тем же ID? Почему ты должен? это не лучшая практика. –

+0

Я имел в виду два идентификатора _ending с_ «ckEsMenu», а не два _same_ ids. –

1

Вы можете избежать $ знак с двумя слэш (\\):

jQuery('[name=ctl00\\$ContentPH\\$ucFuncionEdit1\\$ckEsMenu]');

+0

\\ $ unescaped как \ $, так как \ избегает символа, следующего за ним –

+0

вы спасли меня много времени! благодаря –

Смежные вопросы