2012-02-20 9 views
10

Mam następujący element HTML:Jak wybrać elementy według wartości atrybutu, gdy wartości zawierają znak dolara?

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

Jak mogę zaznaczyć wszystkie elementy z tej samej nazwie jQuery następujące zawiedzie:

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

Dotychczasowa linia kodu podnieść się następujący błąd:

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

Odpowiedz

14

można podać wartość:

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

Podczas pracy z selektorami atrybutu najlepiej zawsze podawać wartość (chociaż jeśli wartość jest pojedynczym słowem zawierającym tylko, litery AZ [wielkość liter nie ma znaczenia] i cyfry 0-9 [ale nie zaczynają się od cyfry ], możesz uciec bez).

+1

Za proste pytania, proste odpowiedzi :) –

0

mówisz identyfikatora klienta, więc można to zrobić na 2 sposoby: 1. gdy kod js na tej samej stronie, gdzie html:

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

2. gdy kod js jest w pliku separeted :

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

Dzięki, ale nie używam JS na tej samej stronie, jest to zła praktyka, zamiast tego używam jej na dole mojej strony wzorcowej za pomocą ' '. I selektor 'jQuery (" input [id $ = ckEsMenu] ")' to nie jest kuloodporne, spowodowałoby problem, jeśli masz dwa identyfikatory kończące się na "ckEsMenu". –

+0

używasz dwóch elementów o tym samym ID? Dlaczego powinieneś? to nie najlepsza praktyka. –

+0

Miałem na myśli dwa identyfikatory z zapisem "ckEsMenu", a nie dwa _same_ id. –

1

można uciec znak $ zz dwóch ukośników (\\):

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

+0

\\ $ jest unieważniany jako \ $, ponieważ \ ucieka przed postacią podążając za nią –

+0

zaoszczędziłeś mi dużo czasu, człowieku! Dzięki –

Powiązane problemy