2009-03-25 11 views
24

¿Cómo puedo seleccionar <span> donde display está configurado en none en el código siguiente?En jQuery, ¿cómo puedo seleccionar un elemento oculto?

<p id="p1"> 
<span id="test1" style="display:none">test1</span> 
<span id="test2" >test2</span> 
</p> 

puedo seleccionar el <span> cuyo ID es "test1" mediante el uso de $("span[id='test1']"), pero no funciona cuando uso $("span[style='display:none']").

¿Hay algún método para obtener este elemento a la vez?

Muchas gracias.

+0

Echa un vistazo aquí también https://api.jquery.com/hidden-selector/ –

Respuesta

42

Usted está buscando el selector :hidden

Tenga en cuenta que la forma correcta de seleccionar un elemento de identificación es simple:

$("#test1"); 

Hacerlo de la manera que está haciendo está haciendo jQuery hacer análisis innecesarios y es mucho mas lento

Si desea seleccionar #test1 solamente si está oculto, lo hace:

$("#test1:hidden"); 

Si desea seleccionar todos los <span> elementos que se esconden bajo #p1, esto se hace:

$("span:hidden", "#p1"); 

Como se señala en los comentarios, el opuesto de este selector es el selector :visible:

$("span:visible", "#p1"); 

Seleccionaría entonces cualquier elemento <span> visible en el elemento #p1.

+0

solo para tener en cuenta, lo contrario también existe para encontrar elementos visibles -: visible –

+0

Lo suficientemente bueno. Agregado a la respuesta. :) –

+2

Esto aparentemente ha cambiado. La documentación ahora establece: "Elemento asumido como oculto si él o sus padres no consumen ningún espacio en el documento. La visibilidad del CSS no se tiene en cuenta". – cweston

Cuestiones relacionadas