从列表中删除项目

时间:2013-04-11 09:16:53

标签: javascript jquery html

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

我现在有

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

但是除了最后一个之外它会删除所有内容,因此它不正确

4 个答案:

答案 0 :(得分:9)

使用带有否定索引的:eq() - 这将从集合的 end 而不是开头计算。

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

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

Here's a quick demonstration

答案 1 :(得分:4)

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

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

您可以在此处查看:http://jsfiddle.net/bBxDL/1

答案 2 :(得分: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/

答案 3 :(得分: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();