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 + ')') );
}