2012-02-20 11 views
10

Ho il seguente elemento HTML:Come selezionare gli elementi in base al valore dell'attributo quando i valori contengono il simbolo del dollaro?

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

Come posso selezionare tutti gli elementi con lo stesso nome utilizzando jQuery, il seguente esito negativo:

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

La riga di codice precedente alzare il seguente errore:

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

risposta

14

citare il valore:

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

Quando si tratta di selettori di attributo, è meglio citare sempre il valore (anche se se il valore è una parola che contiene solo le lettere AZ [case insensitive] e le cifre 0-9 [ma che non inizia con una cifra ], puoi andartene senza).

+1

Per domande semplici, risposte semplici :) –

0

si sta parlando clientid modo è possibile farlo in 2 modi: 1. quando il codice js nella stessa pagina in cui il codice HTML:

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

2. quando il codice js è nel file di separeted :

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

Grazie, ma non uso JS nella stessa pagina, è una cattiva pratica, invece lo uso nella parte inferiore della mia pagina principale tramite ' '. E il selettore 'jQuery (" input [id $ = ckEsMenu] ")' non è a prova di proiettile, si tradurrebbe in un problema se si hanno due ID che terminano con "ckEsMenu". –

+0

si usano due elementi con lo stesso ID? perchè dovresti? non è la migliore pratica. –

+0

Intendevo due ID _ending with_ "ckEsMenu", non due ID _same_. –

1

si può sfuggire al segno $ con con due barre rovesciate (\\):

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

+0

\\ $ non viene rappresentato come \ $, poiché \ fugge il carattere che lo segue –

+0

mi hai salvato un sacco di tempo! Grazie –

Problemi correlati