如何获得选择最后李标签之前的L1标签

问题描述:

<html> 
    <head> 
     <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7/jquery.min.js"></script> 
    </head> 

<body> 

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

    <script>$("ul li:nth-child(3)").append("<span> - Selected!</span>");</script> 

</body> 

</html> 

我想选择里3号,并与:nth-child(3)但问题是,L1标签是随机有时也可以是6或9或20 ..所以怎么样得到最后,也许然后使用prev()?如何获得选择最后李标签之前的L1标签

.eq接受负指数,从尾部开始计数。请注意,.eq计数在集合,而不是实际的子索引。然而,在你的情况下,该套装只包含一个ul的孩子,所以这没有什么区别。

$("ul li").eq(-2); // -1 is last, -2 is one before last 
+0

优秀!!!简单而清脆... – Chandu 2012-07-10 16:43:15

+0

+1为好。 – Adil 2012-07-10 16:46:42

请试试这个:

$('ul li:last').prev(); 

试试这个:

$("ul li:last").prev("li").append("<span> - Selected!</span>"); 

使用.last()方法或:last选择:

$('ul li:last').append("whatever"); 

使用:nth-last-child选择:

$("ul li:nth-last-child(2)") 

不是最优雅的方式,但是过一段时间它是有用的有选择的元素列表:

var liList = $('#testUl li'); 
var value = $(liList[liList.length-2]).text(); 

这里的例子:http://jsfiddle.net/sx6sQ/