jQuery 遍历 - has() メソッド

ある要素が別の要素に含まれているかどうかを検出する:

$("ul").append("<li>" + ($("ul")..has("li").length ? "Yes" : "No") + "</li>");
$("ul").has("li").addClass("full");

実際に試してみてください

定義と用法

has() は、指定されたセレクタまたは DOM 要素を持つ後裔を持つ要素集合をマッチング要素集合に縮小します。

文法

.has(selector)
パラメータ 説明
selector マッチング要素のセレクタ表現を含む文字列値。

詳細な説明

DOM 要素のコレクションを表す jQuery オブジェクトが与えられた場合、.has() メソッドはマッチング要素のサブセットを使用して新しい jQuery オブジェクトを構築します。使用されるセレクタは、マッチング要素の後裔を検出するために使用されます;後裔要素のいずれかがこのセレクタにマッチングすると、その要素は結果に含まれます。

以下に示す、ネストされたリストを持つページについて考えてみてください:

<ul>
  <li>list item 1</li>
  <li>list item 2</li>
    <ul>
      <li>list item 2-a</li>
      <li>list item 2-b</li>
    </ul>
  </li>
  <li>list item 3</li>
  <li>list item 4</li>
</ul>

このメソッドをリストアイテムのコレクションに適用することができます:

$('li').has('ul').css('background-color', 'red');

実際に試してみてください

この呼び出しの結果、プロジェクト 2 の背景が赤に設定されたのは、このプロジェクトが後裔の中で唯一 <ul> を持つ <li> だからです。