2009-03-25 15 views
24

Come posso selezionare il <span> dove display è impostato su none nel seguente codice?In jQuery, come posso selezionare un elemento nascosto?

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

posso selezionare la <span> cui ID è "test1" utilizzando $("span[id='test1']"), ma non funziona quando uso $("span[style='display:none']").

C'è qualche metodo per ottenere questo elemento alla volta?

Grazie mille.

+0

Dai un'occhiata anche a https://api.jquery.com/hidden-selector/ –

risposta

42

Stai cercando il selettore :hidden

Si prega di notare che il modo corretto di selezionare un elemento per ID è semplicemente:

$("#test1"); 

Farlo il modo in cui si sta facendo sta facendo jQuery fare analisi inutili ed è molto più lento.

Se si desidera selezionare #test1 solo se è nascosto, si esegue questa operazione:

$("#test1:hidden"); 

Se si voleva selezionare tutti <span> gli elementi che sono nascosti sotto #p1, si esegue questa operazione:

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

Come indicato nei commenti, l'opposto di questo selettore è il selettore :visible:

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

Seleziona quindi qualsiasi elemento visibile <span> nell'elemento #p1.

+0

solo per notare, esiste anche il contrario per la ricerca di elementi visibili -: visibile –

+0

Abbastanza giusto. Aggiunto per rispondere. :) –

+2

Questo è apparentemente cambiato. La documentazione ora afferma: "Elemento assunto come nascosto se esso oi suoi genitori non consumano spazio nel documento. La visibilità CSS non viene presa in considerazione." – cweston

Problemi correlati