与jQuery相反:eq()

man*_*its 35 javascript jquery jquery-selectors

有没有人知道是否存在某种选择器来从匹配的集合中选择元素,但是由指示的索引给出的元素.例如:

$("li").neq(2).size();
Run Code Online (Sandbox Code Playgroud)

假设有5个元素,最后一个语句将给你4个,并且将包含<li>DOM中的所有元素,但第二个元素.

man*_*its 7

好吧,这只是

$("li:not(:eq(2))");
Run Code Online (Sandbox Code Playgroud)


Jam*_*man 6

其他答案可以正常工作,但作为替代方案,您可以实现自己的自定义选择器 neq

$.extend($.expr[":"], {  
    neq: function(elem, i, match) {  
        return i !== (match[3] - 0);
    }  
});  
Run Code Online (Sandbox Code Playgroud)

然后你可以做你最初建议的.

$("li:neq(2)").size();
Run Code Online (Sandbox Code Playgroud)

虽然另一篇文章建议使用.length而不是.size,这将更好,因为它只是一个属性而不是额外的函数调用.

$("li:neq(2)").length;
Run Code Online (Sandbox Code Playgroud)


Sel*_*gam 5

我会在这种情况下使用过滤器,

$('li').filter(function (i, item) {
   return i != 2;
})
Run Code Online (Sandbox Code Playgroud)