2009-09-04 6 views
5

Estoy viendo el sitio de jquery en el selector de contenidos.¿Cómo usar Jquery?

$("div:contains('John')").css("text-decoration", "underline"); 

¿Cómo puedo hacer esto para que tome un valor no codificado? Traté de hacer algo como esto

$("div:contains(" + name + ")") 

pero eso no parece funcionar y es muy complicado. Probablemente me estoy perdiendo un corsé o algo así, pero ¿hay alguna manera limpia de que funcione? Dado que incluso si consigo que esto funcione la próxima vez que tenga que expandirlo, volverá a ser el mismo problema con tantas concatenaciones y esas cosas.

Respuesta

11

Te estás perdiendo las comillas alrededor del parámetro.

$('div:contains("' + name + '")').css(...); 

trato de siempre uso de comillas simples para delimitadores de cadenas, y comillas dobles para las cotizaciones reales en las cadenas al escribir JS. De cualquier manera funciona, pero ser consistente ayuda a leer las cadenas =)

+0

Personalmente prefiero que sea al revés, pero la coherencia es la clave. +1 –

+0

Sí - cualquiera de las dos maneras funciona, y la consistencia es la clave. Prefiero comillas simples como delimitadores de cadenas principalmente porque creo que hace que el código parezca "más limpio"; para cada cadena hay dos puntos menos en mi pantalla ...;) Por otro lado, si quiere coherencia con otros idiomas (C# , por ejemplo) es probable que desee utilizar comillas dobles. –

+0

Me gusta usar comillas simples en javascript, ya que entonces no tiene que escapar de los atributos html. Debo admitir que a veces uso comillas dobles (si lo veo lo corrijo), ya que es obligatorio en C# y en la mayoría de los demás idiomas. Ya es lo que pensé que había olvidado algo. NO MEJOR manera de hacerlo? deberían agregar como String.Format de C# a jquery que haría las cosas más agradables. – chobo2

5

intentarlo $ ("div: contiene ('" + nombre + "')")

Cuestiones relacionadas