2009-12-28 14 views
34

Tengo varios objetos en una página y quiero realizar una operación usando jQuery solo en algunos de ellos, los que no tienen un atributo especificado. Por lo tanto:Selectores de jQuery: busque objetos sin el atributo especificado

<li style='...'>some text</li> 
<li style='...'>some other text</li> 
<li>some very diffrent text</li> 

y en javascript que tendría:

$('li[style]').hide(); 

que ocultar todos los elementos con un atributo de la style. Pero si quiero ocultar los sin, ¿cómo debería ser mi selector?

Respuesta

69
jQuery("li:not([style])").hide(); 
+0

Muy simple, en una línea ... ¡respuesta perfecta! – Druzion

5

Puede utilizar la: no pseudo-selector para buscar elementos que No partido de un determinado selector. En su ejemplo, que desea seleccionar todos los elementos li sin el atributo de estilo, por lo que tendría que utilizar algo como esto:

$('li:not([style])').hide(); 

También puede combinar esto con otros selectores:

$('#div input:not(:checked)').show(); 

Es una herramienta bastante poderosa!

0

Puede que le resulte más clara y con más prestaciones a utilizar el método en lugar del selector .not(). A modo de ejemplo:

$('li').not('[style]').hide(); 

Esto es también lo que los desarrolladores de jQuery recommend.

Cuestiones relacionadas