9

我想li从我的无序列表中删除所有内容,但我想让li最后一个li人知道它是如何完成的?

我现在有

$('.pagination ul li:not(:last)').remove();

但这会删除除最后一个以外的所有内容,因此不正确

4

4 回答 4

9

与负索引一起使用:eq()- 这将从集合的末尾而不是开头开始计数。

在您的情况下,您需要使用-2(-1将是最后一个<li>) 的索引,如下所示:

$('.pagination ul li:not(:eq(-2))').remove();

这是一个快速演示

于 2013-04-11T09:20:21.153 回答
4

为了这个答案的完整性,这是另一种(可以说更具可读性)方法:

$('.pagination ul li:last-child').prev().siblings().remove();

你可以在这里看到它:http: //jsfiddle.net/bBxDL/1

于 2013-04-11T09:23:24.330 回答
2

Javascript

var $items = $('.pagination ul li');

$items.not($items.eq($items.length-2)).remove();

HTML

<div class="pagination">
    <ul>
        <li>Page 1</li>
        <li>Page 2</li>
        <li>Page 3</li>
        <li>Page 4</li>
        <li>Page 5</li>
    </ul>
</div>

工作示例 http://jsfiddle.net/B8NPV/

于 2013-04-11T09:21:51.667 回答
2

好吧,您可以使用它nth-last-of-type来获取最后一个之前的那个。附上jsfiddle http://jsfiddle.net/zjLph/

HTML

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

JS

$('.pagination ul li').filter(':not(:nth-last-of-type(2))').remove();
于 2013-04-11T09:22:31.933 回答