我想从我的无序列表中删除所有li
,但我想让li
在最后一个li
之前让任何人知道它是如何完成的?
我现在有
$('.pagination ul li:not(:last)').remove();
但是除了最后一个之外它会删除所有内容,因此它不正确
答案 0 :(得分:9)
使用带有否定索引的:eq()
- 这将从集合的 end 而不是开头计算。
在您的情况下,您需要使用-2
的索引(-1
将是最后一个<li>
),如下所示:
$('.pagination ul li:not(:eq(-2))').remove();
答案 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>
答案 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();