2011-08-16 48 views
9

如果我有這樣的事情:如何從jQuery中的ul列表中選擇倒數第二個(最後一個)li元素?

<ul> 
<li>1</li> 
<li>2</li> 
<li>3</li> 
<li>4</li> 
<li>5</li> 
</ul> 

,我需要addClass「額外」的倒數第二(例如,如果我有5種li元素的額外的類將被添加到第四li元素)從UL名單。

這樣的結果在這種情況下將是:提前

<ul> 
<li>1</li> 
<li>2</li> 
<li>3</li> 
<li class="extra">4</li> 
<li>5</li> 
</ul> 

感謝

+6

謝謝你今天給我講一個新單詞'倒數第二'。 –

+1

我打算+1只是倒數第二。 –

回答

3
$("ul li").last().prev().addClass("foo"); 
0
var items = $("ul").children(); 
var penultimate = items.eq(items.length - 2); 
penultimate.addClass("extra"); 
1

由於所有<li>元素是同級的,並且有它們之間沒有其他元素,可以使用last()後面跟着prev()

$("li").last().prev().addClass("extra"); 

是否有其他因素在兩者之間,你必須使用prevAll()代替:

$("li").last().prevAll("li").first().addClass("extra"); 
1
$('li').eq($('li').length-2).addClass("extra") 
5

如果只有一個列表,只傳遞負指數的eq()[docs]方法。

$("ul li").eq(-2).addClass("extra"); 

聽起來就像您使用的是舊版本的jQuery。

Here's an example顯示它在jQuery 1.3.2中工作。

相關問題