2009-12-28 1 views
34

Ho diversi oggetti su una pagina e voglio eseguire un'operazione utilizzando jQuery solo su alcuni di essi - quelli che non hanno un attributo specificato. Quindi:Selettori jQuery - trova oggetti senza attributo specificato

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

e in javascript vorrei avere:

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

che nascondere tutti gli elementi con un style sttribute. Ma se voglio nascondere quelli senza, come dovrebbe essere il mio selettore?

risposta

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

Molto semplice, su una riga ... risposta perfetta! – Druzion

5

È possibile utilizzare la: non pseudo-selettore per cercare elementi che Non partita un certo selettore. Nel tuo esempio, si desidera selezionare tutti gli elementi li senza l'attributo di stile, in modo da usare ad esempio questo:

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

È possibile anche combinare questo con altri selettori:

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

E 'una strumento piuttosto potente!

0

Potrebbe risultare più chiaro e più performante di utilizzare il metodo al posto del selettore .not(). Per fare un esempio:

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

Questo è anche ciò che gli sviluppatori jQuery recommend.