.find()
現在マッチしている各要素から、指定した条件に合致する子孫要素を選択します。
- .find( selector ) 1.0追加
- .find( jQuery object ) 1.6追加
- .find( element ) 1.6追加
- サンプル
- デモ
.find( selector ) 1.0追加
戻り値:jQuery
引数 | 説明 |
---|---|
selector | 検索対象をセレクタで指定します。 |
.find( jQuery object ) 1.6追加
戻り値:jQuery
引数 | 説明 |
---|---|
jQuery object | 検索対象をjQueryオブジェクトで指定します。 |
.find( element ) 1.6追加
戻り値:jQuery
引数 | 説明 |
---|---|
element | 検索対象をDOM要素で指定します。 |
サンプル
.children()との違いは、.children()は1つ下の層である子要素のみを対象とするのに対し、 .find()は子孫要素全てを対象とします。
次のような入れ子になったリストのコードがあった場合、
<ul class="level-1">
<li class="item-i">I</li>
<li class="item-ii">II
<ul class="level-2">
<li class="item-a">A</li>
<li class="item-b">B
<ul class="level-3">
<li class="item-1">1</li>
<li class="item-2">2</li>
<li class="item-3">3</li>
</ul>
</li>
<li class="item-c">C</li>
</ul>
</li>
<li class="item-iii">III</li>
</ul>
下記の処理を実行すると、A,B,1,2,3,Cが対象となり、背景が赤に変更されます。 マッチしていた自身の要素も.find()にしているLI要素ですが、これは対象になりません。 .find()は子孫要素のみを対象とします。
$('li.item-ii').find('li').css('background-color', 'red');
他のトラバーサルメソッドと違い、セレクタなどの引数の指定は必須となります。 もし全ての子孫要素を取得したい場合は、"*"セレクタを指定してください。
$('li.item-ii').find('li')と$('li', 'li.item-ii')は等価になります。
デモ
全てのP要素内からSPAN要素をセレクタで指定して、フォント色を赤くします。
<!DOCTYPE html>
<html>
<head>
<script src="http://code.jquery.com/jquery-latest.js"></script>
</head>
<body>
<p><span>こんにちは</span>, 調子はどうだい?</p>
<p>私?<span>良い感じだよ。</span></p>
<script>
$("p").find("span").css('color','red');
</script>
</body>
</html>
全てのP要素内からSPAN要素をjQueryオブジェクトで指定して、フォント色を赤くします。 DIV要素ないのSPAN要素は対象外になっていることに注目してください。
<!DOCTYPE html>
<html>
<head>
<style>
span { color: blue; }
</style>
<script src="http://code.jquery.com/jquery-latest.js"></script>
</head>
<body>
<p><span>こんにちは</span>, 調子はどうだい?</p>
<p>私?<span>好調だよ。</span>.</p>
<div>ご飯は<span>食べた</span>?</div>
<script>
var $spans = $('span');
$("p").find( $spans ).css('color','red');
</script>
</body>
</html>
© 2010 - 2017 STUDIO KINGDOM