Javascript jQuery的对立面:eq()

Javascript jQuery的对立面:eq(),javascript,jquery,jquery-selectors,Javascript,Jquery,Jquery Selectors,有人知道是否存在某种选择器来从匹配的集合中选择所有元素,但指定索引给出的集合除外。例如: $("li").neq(2).size(); 假设有5个元素,最后一个语句将给出4个元素,并且将包含DOM中除第二个元素以外的所有元素。使用: 好吧,只是 $("li:not(:eq(2))"); 其他答案可以很好地工作,但作为替代方案,您可以为neq实现自己的自定义选择器 然后你可以按照你最初的建议去做 $("li:neq(2)").size(); 尽管另一篇文章建议使用.length而不是.siz

有人知道是否存在某种选择器来从匹配的集合中选择所有元素,但指定索引给出的集合除外。例如:

$("li").neq(2).size();
假设有5个元素,最后一个语句将给出4个元素,并且将包含DOM中除第二个元素以外的所有元素。

使用:

好吧,只是

$("li:not(:eq(2))");

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

然后你可以按照你最初的建议去做

$("li:neq(2)").size();
尽管另一篇文章建议使用.length而不是.size,但这会更好,因为它只是一个属性,而不是一个额外的函数调用

$("li:neq(2)").length;

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

$('li').filter(function (i, item) {
   return i != 2;
})

除了自定义选择器之外,您还可以将其作为jQuery插件实现:

$.fn.neg = function (index) {
    return this.pushStack( this.not(':eq(' + index + ')') );
}

注意语法,它在1.8中也发生了变化,这不是创建了一个伪选择器,而不是一个方法吗$li:NEQ2如果您想要最快的neq,请使用过滤器,请参阅
$('li').filter(function (i, item) {
   return i != 2;
})
$.fn.neg = function (index) {
    return this.pushStack( this.not(':eq(' + index + ')') );
}