2011-04-12 12 views
19

Sto provando a selezionare tutti i proiettili tranne l'ultimo proiettile ma sto facendo qualcosa in modo non corretto.Aiuto con selettore JQuery: not (: last)

Ecco il mio html

<ul> 
<li>Text</li> 
<li>Text</li> 
<li>Text</li> 
<li>Text</li> 
<li>Text</li> 
</ul> 

<ul> 
<li>Text</li> 
<li>Text</li> 
<li>Text</li> 
<li>Text</li> 
<li>Text</li> 
</ul> 


<ul> 
<li>Text</li> 
<li>Text</li> 
<li>Text</li> 
<li>Text</li> 
<li>Text</li> 
</ul> 

E il mio jQuery:

jQuery('ul li:not(:last)').append(" | "); 

E 'l'aggiunta del tubo per ogni proiettile però ...

+1

Quale versione di jQuery stai usando? Funziona perfettamente per me: http://jsfiddle.net/mattball/qmVdb/ –

+3

Tranne l'ultimo 'li', o eccetto l'ultimo' li' di * each 'ul' *? – BoltClock

+0

Sì, mi sono reso conto che stavo cercando di fare l'ultimo li di OG qualsiasi ... – redconservatory

risposta

41

Poiché il codice HTML contiene più liste non ordinate, $('ul li') selezionerà ogni singolo <li>, in tutti i <ul> s. :last quindi seleziona l'elemento finale in tale elenco. Utilizzare :last-child, che ottiene l'ultimo <li> in ogni di <ul> s.

$('ul li:not(:last-child)').append(' | '); 

http://jsfiddle.net/mattball/qmVdb/1/

+0

Grazie, che ha chiarito molto ... – redconservatory

+0

Dal momento che il mio uso era un po 'diverso (lo stavo usando con removeClass), avevo bisogno di un solo elemento quindi sono andato con l'ultimo invece che con l'ultimo figlio, ma il tuo codice era super utile. Grazie! $ ('. Active: not (: last)'). RemoveClass ('active'); – hardba11