2012-02-20 8 views
10

Tengo el siguiente elemento HTML:¿Cómo seleccionar elementos por valor de atributo cuando los valores contienen signo de dólar?

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

¿Cómo puedo seleccionar todos los elementos con el mismo nombre utilizando jQuery, la siguiente falla:

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

La línea de código anterior elevar el siguiente error:

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

Respuesta

14

Usted cita el valor:

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

Cuando se trata con selectores de atributos, lo mejor es citar siempre el valor (aunque si el valor es una palabra simple que contiene sólo las letras A a la Z [] sensible a mayúsculas y los dígitos 0-9 [pero que no empiezan con un dígito ], puedes escapar sin).

+1

Para preguntas simples, respuestas simples :) –

0

que está hablando ClientID para que pueda hacerlo de 2 maneras: 1. cuando el código js en la misma página en su html:

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

2. cuando el código JS está en el archivo separeted :

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

Gracias, pero no uso JS en la misma página, es una mala práctica, en su lugar lo uso en la parte inferior de mi página maestra a través de ' '. Y el selector 'jQuery (" entrada [id $ = ckEsMenu] ")' no es a prueba de balas, resultaría en un problema si tiene dos ID que terminan en "ckEsMenu". –

+0

¿usa dos elementos con la misma identificación? ¿por qué deberías? esa no es la mejor práctica. –

+0

Quise decir dos identificadores _que terminen con_ "ckEsMenu", no dos _same_ ids. –

1

se puede escapar el signo $ con con dos barras invertidas (\\):

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

+0

\\ $ está sin recortar como \ $, ya que \ se escapa del personaje que lo sigue –

+0

me salvaste mucho tiempo hombre! Gracias –

Cuestiones relacionadas