2011-04-12 13 views
19

Estoy intentando seleccionar todas las viñetas excepto la última viñeta, pero estoy haciendo algo incorrectamente.Ayuda con el selector JQuery: no (: último)

Aquí es mi 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> 

Y mi jQuery:

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

Es la adición de la tubería a cada bala sin embargo ...

+1

¿Qué versión de jQuery está usando? Funciona completamente bien para mí: http://jsfiddle.net/mattball/qmVdb/ –

+3

Excepto el último 'li', o excepto el último' li' de * cada 'ul' *? – BoltClock

+0

Sí, me di cuenta de que estaba tratando de hacer la última li de CADA u ... – redconservatory

Respuesta

41

Debido a su html contiene múltiples listas desordenadas, $('ul li') seleccionará cada <li>, en todos los <ul> s. :last luego selecciona el elemento final en esa lista. Utilice :last-child, que obtiene el último <li> en cada del <ul> s.

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

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

+0

Gracias, eso clarificó mucho ... – redconservatory

+0

Como mi uso era un poco diferente (lo estaba usando con removeClass), solo necesitaba un elemento, así que fui con el último en vez del último, pero el código fue súper útil. ¡Gracias! $ ('. Active: not (: last)'). RemoveClass ('active'); – hardba11