2011-04-12 1 views
19

Я пытаюсь выбрать все пули, кроме последней пули, но я делаю что-то неправильно.Помощь с селектором JQuery: not (: last)

Вот мой 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> 

И мой JQuery:

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

Это добавление трубы к каждой пули однако ...

+1

Какую версию JQuery вы используете? Это работает отлично для меня: http://jsfiddle.net/mattball/qmVdb/ –

+3

За исключением самого последнего 'li', или кроме последнего' li' of * each 'ul' *? – BoltClock

+0

Да, я понял, что пытался сделать последнее li из EACH ul ... – redconservatory

ответ

41

Поскольку ваш HTML содержит несколько неупорядоченных списков, $('ul li') будет выбирать каждый <li>, во всех <ul> с. :last затем выбирает последний элемент в этом списке. Используйте :last-child, который получает последние <li> в каждый<ul> s.

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

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

+0

Спасибо, это многое прояснило ... – redconservatory

+0

Поскольку мое использование было немного другим (я использовал его с removeClass), мне нужен был только один элемент, поэтому я пошел с последним, а не с последним, но ваш код супер полезный. Благодаря! $ ('. Active: not (: last)'). RemoveClass ('active'); – hardba11

Смежные вопросы