jQueryの巡回 - not()メソッド

idが"selected"の段落を含む集合から削除します:

$("p").not("#selected")

自分で試してみてください

定義と用法

要素集合から要素を削除します。

文法 1

.not(selector)
パラメータ 説明
selector 文字列値、要素に一致するための選択子表現を含む。

文法 2

.not(element)
パラメータ 説明
element マッチングセットから削除する必要がある 1 つまたは複数の DOM エレメント。

文法 3

.not(function(index))
パラメータ 説明
function(index) 集合の各要素を検出するための関数。this は現在の DOM エレメントです。

詳細な説明

DOM 元素集合を表す jQuery オブジェクトが与えられた場合、.not() メソッドはマッチング要素のサブセットから新しい jQuery オブジェクトを構築します。適用される選択子は各要素を検出し、その選択子に一致しない要素が結果に含まれます。

以下のシンプルなリストを持つページを考えてみてください:

<ul>
  <li>list item 1</li>
  <li>list item 2</li>
  <li>list item 3</li>
  <li>list item 4</li>
  <li>list item 5</li>
</ul>

このメソッドはリストアイテムセットに適用できます:

$('li').not(':even').css('background-color', 'red');

自分で試してみてください

この呼び出しの結果は、プロジェクト 2 と 4 を赤い背景に設定することになります。これは、それらが選択子に一致していないためです(思い出してください、:even と :odd は 0ベースのインデックスを使用します)。

具体的な要素の削除

.not() メソッドの第2バージョンは、既に他の手段で特定した要素をマッチングセットから削除することができます。例えば、リストに ID が適用されているプロジェクトを想像してみましょう:

<ul>
  <li>list item 1</li>
  <li>list item 2</li>
  <li id="notli">list item 3</li>
  <li>list item 4</li>
  <li>list item 5</li>
</ul>

私たちは原生的な JavaScript 関数 getElementById() を使用して 3番目のリストアイテムを読み取り、それを jQuery オブジェクトから削除することができます:

$('li').not(document.getElementById('notli')).css('background-color', 'red');

自分で試してみてください

この文はプロジェクト 1、2、3、および 5 の背景色を変更します。よりシンプルな jQuery 表現を使用して同じことを行うことができますが、他のライブラリが純 DOM ノードへの参照を提供する場合に非常に有用な技術です。

jQuery 1.4 では、.not() メソッドは関数を引数として受け取り、.filter() メソッドと同様です。関数が true を返す要素はフィルタリングセットから除外されます;その他のすべての要素は含まれます。