2011-04-12 28 views
19

Tôi đang cố gắng chọn tất cả các dấu đầu dòng trừ viên đạn cuối cùng nhưng tôi đang làm điều gì đó không chính xác.Trợ giúp với bộ chọn JQuery: không (: last)

Dưới đây là html của tôi

<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> 

Và jQuery tôi:

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

Nó thêm các đường ống để mỗi viên đạn tuy nhiên ...

+1

Phiên bản nào của jQuery bạn đang sử dụng? Nó hoạt động hoàn toàn tốt cho tôi: http://jsfiddle.net/mattball/qmVdb/ –

+3

Ngoại trừ 'li' cuối cùng, hoặc trừ' li' cuối cùng của * mỗi 'ul' *? – BoltClock

+0

Vâng, tôi nhận ra rằng tôi đã cố gắng làm li cuối cùng của EACH ul ... – redconservatory

Trả lời

41

Vì html của bạn chứa nhiều danh sách không có thứ tự, $('ul li') sẽ chọn từng đơn <li>, trong tất cả các <ul> s. :last sau đó chọn phần tử cuối cùng trong danh sách đó. Sử dụng :last-child, số điện thoại này sẽ nhận được <li> cuối cùng trong mỗi của số <ul> giây.

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

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

+0

Cảm ơn, đã làm rõ rất nhiều ... – redconservatory

+0

Vì việc sử dụng của tôi hơi khác một chút (tôi đã sử dụng nó với removeClass), tôi chỉ cần một phần tử duy nhất, vì vậy tôi đã đi cuối cùng trái ngược với con cuối cùng, nhưng mã của bạn là siêu hữu ích. Cảm ơn! $ ('. Active: not (: last)'). RemoveClass ('hoạt động'); – hardba11

Các vấn đề liên quan