40

一致したセットからすべての要素を選択するためのある種のセレクターが存在するかどうかは誰にもわかりますが、指定されたインデックスによって指定されたものです。例えば:

$("li").neq(2).size();

要素が 5 つあると仮定すると、最後のステートメントで 4 つが得られ<li>、2 番目の要素を除くすべての要素が DOM に含まれます。

4

5 に答える 5

76

使用not:

$('li').not(':eq(2)');
于 2012-08-21T14:38:19.560 に答える
10

よし、それだけだ

$("li:not(:eq(2))");
于 2012-08-21T14:39:25.897 に答える
7

他の答えは問題なく機能しますが、代わりに独自のカスタムセレクターを実装できますneq

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

そして、最初に提案したことを実行できます。

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

別の投稿では.lengthの代わりに使用することを提案しましたが.size、これは単なるプロパティであり、追加の関数呼び出しではないため、より優れています。

$("li:neq(2)").length;
于 2012-08-21T14:42:38.580 に答える
6

そのような場合はフィルターを使用しますが、

$('li').filter(function (i, item) {
   return i != 2;
})
于 2012-08-21T14:51:30.270 に答える
1

カスタム セレクターに加えて、これを jQuery プラグインとして実装することもできます。

$.fn.neg = function (index) {
    return this.pushStack( this.not(':eq(' + index + ')') );
}
于 2012-08-21T15:04:13.760 に答える