0
<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 和 with:nth-child(3)但问题是 li 标签是随机的,有时它可以是 6 或 9 或 20 .. 那么如何获得最后一个,然后使用 prev() ?

4

6 回答 6

7

.eq接受从末尾开始计数的负索引。请注意,这.eq取决于set,而不是实际的子索引。但是,在您的情况下,该集合仅包含 one 的孩子ul,因此没有什么区别。

$("ul li").eq(-2);  // -1 is last, -2 is one before last
于 2012-07-10T16:41:43.073 回答
2

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

$("ul li:nth-last-child(2)")
于 2012-07-10T16:41:51.230 回答
1

试试这个:

$("ul li:last").prev("li").append("<span> - Selected!</span>");
于 2012-07-10T16:41:02.073 回答
1

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

$('ul li:last').append("whatever");
于 2012-07-10T16:41:04.750 回答
0

请试试这个:

$('ul li:last').prev();
于 2012-07-10T16:40:56.420 回答
0

不是最优雅的方式,但有时拥有选定元素的列表很有用:

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

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

于 2012-07-10T16:46:09.310 回答