一致したセットからすべての要素を選択するためのある種のセレクターが存在するかどうかは誰にもわかりますが、指定されたインデックスによって指定されたものです。例えば:
$("li").neq(2).size();
要素が 5 つあると仮定すると、最後のステートメントで 4 つが得られ<li>
、2 番目の要素を除くすべての要素が DOM に含まれます。
一致したセットからすべての要素を選択するためのある種のセレクターが存在するかどうかは誰にもわかりますが、指定されたインデックスによって指定されたものです。例えば:
$("li").neq(2).size();
要素が 5 つあると仮定すると、最後のステートメントで 4 つが得られ<li>
、2 番目の要素を除くすべての要素が DOM に含まれます。
使用not
:
$('li').not(':eq(2)');
よし、それだけだ
$("li:not(:eq(2))");
他の答えは問題なく機能しますが、代わりに独自のカスタムセレクターを実装できますneq
$.extend($.expr[":"], {
neq: function(elem, i, match) {
return i !== (match[3] - 0);
}
});
そして、最初に提案したことを実行できます。
$("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 + ')') );
}