如何在最后一个li标签之前选择li标签

时间:2012-07-10 16:39:23

标签: jquery list

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

我想选择li编号3和:nth-child(3),但问题是li标签是随机的,有时它可能是6或9或20 ..所以如何获得最后一个然后使用prev( )?

6 个答案:

答案 0 :(得分:8)

.eq接受负数指数,从最后算起。请注意,.eq依赖于,而不是实际的子索引。但是,在您的情况下,该集合仅由ul的子集组成,因此不会产生影响。

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

答案 1 :(得分:3)

使用:nth-last-child选择器:

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

答案 2 :(得分:1)

试试这个:

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

答案 3 :(得分:1)

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

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

答案 4 :(得分:0)

请试试这个:

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

答案 5 :(得分:0)

不是最优雅的方式,但有时候有所选元素列表是有用的:

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

此处示例:http://jsfiddle.net/sx6sQ/