jQuery:选择列表中的最后4项

jQuery:选择列表中的最后4项,jquery,css,list,Jquery,Css,List,我有一个图像/文本链接列表 <ul> <li>link 1</li> <li>link 2</li> <li>link 3</li> <li>link 4</li> <li>link 5</li> <li>link 6</li> <li>link 7</li> <li>link 8</li>

我有一个图像/文本链接列表

<ul>
<li>link 1</li>
<li>link 2</li>
<li>link 3</li>
<li>link 4</li>

<li>link 5</li>
<li>link 6</li>
<li>link 7</li>
<li>link 8</li>
</ul>
但是,我希望列表中的最后4项显示时,其边距底部没有5px的空间。因此,我想使用jQuery选择最后4项,并将其css样式更改为marginBottom:0px

问题在于,jQuery就是这样选择最后一项的:

li:last
但是最后4个呢?或者是最后5个,或者6个


谢谢。

我想你可以试试这个
$(“li”).slice(-5)

使用
:gt()
例如:


您可以使用筛选方法

var elems = $('ul li');
elems.filter(function(idx){
     /* we use 5  because the index starts at 0 */
     return idx > elems.length-5; 
}).css('margin-bottom','0px');
演示:

然后在css中:

.last-li-items {
    margin-bottom:0 !important;
}
您可以使用

或者,您可以使用jQuery的


上面的代码将返回最后五个元素,因为slice是基于0的。你试过这个例子吗?似乎从一开始就以0为基础<代码>$('li')。切片(-4)。长度
>4@super,它选择最后四个,因为它是负数。所以它从最后算起是4。。非常感谢!:-)@劳蒂亚姆科-不客气!非常感谢!:-)非常感谢!:-)应该是-4(OP想要最后4个)@Gaby:“但是最后4个呢?或者可能是最后5个,或者6个呢?”谢谢Gaby我只是说你的两个例子选择了不同的东西。。第一个选择最后5个,第二个选择最后一个4@Gaby:我的错,修好了-p数字不重要,是吗?@Jishny,不太重要。。因为这两种方法建议使用基于零的方法需要一个不同于此方法的数字。非常感谢!:-)是的,是的!谢谢你指出!:-)
$('li').slice(-4).css('color', 'red')
var elems = $('ul li');
elems.filter(function(idx){
     /* we use 5  because the index starts at 0 */
     return idx > elems.length-5; 
}).css('margin-bottom','0px');
$('li').slice(-4).addClass('last-li-items');
.last-li-items {
    margin-bottom:0 !important;
}
var e = $('li').slice(-4).css('margin-bottom', '0px');    
$('li').slice(-4)
var size = $('li').size();
$('li:gt('+(size-5)+')');