jQuery「.children() / .find()」で子要素を取得する方法


jQueryの「.children() / .find()」は、いずれも子要素を取得する事ができるメソッド
今回は、jQueryの「.children() / .find()」について、それぞれの使い方をサンプルを交えて解説しよう。
目次
.children()の機能とは?
.children()は、「指定要素の直下の子要素を取得する」事ができる。
.children()の構文
.children()の構文は次のような記述となる
$("セレクタ").children();
また、.children("セレクタ")のように引数にセレクタを指定すれば条件を絞り込んで取得できる。セレクタは.children("セレクタ,セレクタ")のように複数指定する事も可能で、それぞれの条件下の要素を全て取得できる。
.children()の使用例
たとえば次のようなHTMLがあったとする
<div class="wrapper">
<p class="test">テキスト1</p>
<div class="box">
<p class="test">テキスト2</p>
</div>
</div>
$(".wrapper").children(".test").css("color","red");
この例では、セレクタ$(".wrapper")に対して.children(".test")とする事で、その1階層下の直下の子要素である<p class="test">テキスト1</p>だけが取得され、「テキスト1」の文字が赤色に変わる事になる。
cssセレクタの「直下の子要素」セレクタとの違いは?
CSSセレクタの中にも「直下の子要素」を指定する>という指定方法がある。上記の例と同じ内容をCSSセレクタで表現したものと比較すると次のようになる。
$(".wrapper").children(".test").css("color","red");
$(".wrapper > .test").css("color","red");
実際この場合、いずれも同じ結果となる。
では.children()はどのような時に使うかというと、cssのセレクタだけでは指定できない場合に使うといいだろう。つまり、たとえば.parent()という親要素を取得するメソッドを併用して、次の例のように「兄弟要素」を取得する場合など、ひとつのセレクタでは表現できない場合に使うといいだろう。
$("セレクタ").parent().children().css("color","red");
.parent()について詳しく知りたい方はこちらの記事を参考にしてみよう!
.find()の機能とは?
同じ子要素を取得するメソッドに.find()というメソッドがある。
.find()は、「指定要素以下の下層のすべての子要素(子孫要素)を取得」する事ができる。
また.find("セレクタ")のように引数にセレクタを指定する事で、取得条件を指定する事も可能。セレクタは.find("セレクタ,セレクタ")のように複数指定する事も可能で、それぞれの条件下の要素をすべて取得できる。
次のようなHTMLがあった場合
<div class="wrapper">
<p class="test">テキスト1</p>
<div class="box">
<p class="test">テキスト2</p>
</div>
</div>
$(".wrapper").find(".test").css("color","red");
この例では、セレクタ$(".wrapper")に対して.find(".test")とした場合、それ以下の全ての子要素が取得され<p class="test">テキスト1</p><p class="test">テキスト2</p>の両方の文字が赤色に変わる。
cssセレクタの「子孫セレクタ」との違いは?
CSSセレクタでも「半角スペース」を開けてセレクタを指定して「全ての子要素」を指定する方法がある。上記の例と同じ内容をCSSセレクタで表現したものと比較すると次のようになる。
$(".wrapper").find(".test").css("color","red");
$(".wrapper .test").css("color","red");
実際この場合、いずれも同じ結果となる。
さきほどの.children()の時と同様に、cssのセレクタだけでは指定できない場合に.find()を使うといいだろう。
.each()と.find()を併用して複数の要素に適用させる応用例
.each()は繰り返し処理を行う事ができるメソッドであり、次のような書式で処理を繰り返す事ができる。
jQueryオブジェクト.each(function(index) {
繰り返し実行する内容
});)
ちなみに.each(function(index)で引数に指定しているindexには1から始まる連番が格納される事になる。
この.each()を利用して.find()で取得した複数の子要素に順番の同じ処理を繰り返す例を見ていこう!
<div class="wrapper">
<p>テキスト</p>
<ul >
<li>リストA</li>
<li>リストB</li>
<li>リストC</li>
</ul>
</div>
$(".wrapper").find("li").each(function(index){
$(this).text("テキスト" + index);
});
![]()
<div class="wrapper">
<p>テキスト</p>
<ul >
<li>テキスト1</li>
<li>テキスト2</li>
<li>テキスト3</li>
</ul>
</div>
この例では$(".wrapper").find("li")で.wrapper内にある複数のliを全て取得した上で、$(this).text("テキスト" + index);でそのliのテキストを"テキスト" + indexに順番に書き換える事で、「リストA → テキスト1」などに書き換える事ができる。
フロントエンドスキルをもっと早く・簡単にマスターしたい方へ!
JavaScriptやCSS・Sassなどフロントエンド学習は、初心者が「独学」で完全マスターするには半年以上かかり、相当根気よくやらないと挫折してしまうか、ライバルに出遅れてしまう…。
短期間でフロントエンド・WEBデザインをマスターするには?
私の経験だが、手軽なオンラインスクールを利用した方が圧倒的に早かった。独学だと「何からどこまで勉強すれば良いかわからない」ものを、これだけ学習すればOKというポイントをおさえた教科書で学習しながら、わからない点を質問し放題なので、多少の出費は必要だが2ヶ月程度でサクッと学べたので逆に経済的だった!(実際に私がオンラインスクールを受講して体感)
では「オススメはどのスクール?」とよく聞かれるのだが、たった1つのおすすめスクールがある訳でなく、その人によって最適なスクールが違う。
- 学習スタイルが自分に合っているか?
- 低価格でコスパの良い学習料金か?
- 講師に質問しやすい環境か?
- 無料体験できるスクールか?
数あるスクールの中から、実際に受講してわかった事や現役プロならでは目線で厳選・比較したこちらの記事「現役プロ比較!短期 「WEBデザインスクール12校」おすすめランキング!」を参考に自分に合ったスクールを探そう↓
jQuery「.children() / .find()」で子要素を取得する方法のまとめ
以上が、jQueryで「.children() / .find()」で子要素を取得する」方法でした。
その他のjQueryメソッドについて確認したい方は、jQueryメソッドを一覧で解説したこちらの記事を確認しておこう!
※当記事の掲載内容は執筆現在の個人の見解・調査によるもので、動作・サービス等を保証するものではありません。最新情報は各公式サイトでご確認頂き、購入・契約・データ作成等はご自身の判断・責任でお願いします。 免責事項
関連記事
jQuery「makeArray」でオブジェクトを配列に変換する方法
jQuery「toggleClass」で指定のクラスを切り替える方法
jQuery「.siblings() 」ですべての兄弟要素を取得する方法
jQuery「.contents( )」で指定要素の子要素・テキストノードを取得する方法
jQueryのメソッドチェーンの使い方
SVGアニメーションが5分で作れる!jQuery DrawSVGの使い方
jQuery「prop」でプロパティの値を取得/設定
jQuery「.prev() / .prevAll()」で直前の兄弟要素を取得する方法
jQuery「.get()」で jQueryオブジェクトからDOM要素を取得する方法
jQuery「replaceWith / replaceAll」で指定要素を別の要素に置き換える
サイト内検索
新着記事
- YouTubeより詳しく!まとめて学べる『WEBデザイン動画講座』
- Figmaの背景切り抜きプラグイン『Remove BG』のAPI Key取得方法と使い方
- WEBデザイン動画講座のご紹介【お得な割引アリ】
- WixでWEBデザイナーが「ポートフォリオサイト」を作ってみた!
- WEBデザインツールの比較!初心者におすすめは?Figma Photoshop Xd Illustrator
- CodeCampGATE(コードキャンプゲート)とは?転職・就職先と評判
- コードキャンプの「Webデザイン・Webデザイン副業コース」を卒業生が解説!
- テックアカデミー「はじめての副業コース」卒業生が内容を解説!
- PHPの独学!挫折しないおすすめ勉強方法!
- 16インチMacbook Proで使える100Wモバイルバッテリー Zendure SuperTankレビュー
- [体験談] CodeCamp(コードキャンプ)で挫折する理由!
- テックアカデミー「受講した感想・評判」学習内容の総まとめ!
- Photoshop 超リアルな商品写真の鏡面反射の作り方
- デイトラの評判は?詳細内容とメリット・デメリットを解説
- CSSだけ超簡単!画像トリミングできる 「object-fit」 の使い方
- コードキャンプ 「無料体験・カウンセリング」を受講してみた!予約方法や内容の体験談
- デジタルハリウッドSTUDIO by LIGの評判
- PhotoshopでWEBデザインする基本の設定とテクニック
- テックアイエス評判は?現役プロがTECH I.S.を徹底調査!
- WEBデザインの練習・勉強をしながら「お金までもらえる」超おすすめの学習方法!
カテゴリー
タグリスト


















![Adobe CC [45%OFF]学生価格で「社会人」が安く買う方法!(コンプリートプラン)](https://stand-4u.com/stand-4u/wp-content/uploads/2020/12/adobe-CC-2.jpg)






