jQueryで要素を選択するセレクタの使い方【初心者向け】
プログラミング初心者向けに、jQueryでセレクタを使って特定の要素を選択する方法を解説しています。セレクタの書き方を説明し、実際にセレクタで要素を指定して動きを確認しています。セレクタによって作業も効率化するので、ぜひご覧ください。
テックアカデミーマガジンは受講者数No.1のプログラミングスクール「テックアカデミー」が運営。初心者向けにプロが解説した記事を公開中。現役エンジニアの方はこちらをご覧ください。 ※ アンケートモニター提供元:GMOリサーチ株式会社 調査期間:2021年8月12日~8月16日 調査対象:2020年8月以降にプログラミングスクールを受講した18~80歳の男女1,000名 調査手法:インターネット調査
JavaScriptのライブラリであるjQueryでセレクタの使い方について、テックアカデミーのメンター(現役エンジニア)が実際のコードを使用して初心者向けに解説します。
ある要素だけ動きを出したいなど特定の要素に処理を行う際に便利なので、ぜひ理解していきましょう。
目次
そもそもJavaScriptについてよく分からないという方は、JavaScriptとは何なのかについて解説した記事を読むとさらに理解が深まります。
今回の記事の内容は動画でもご覧いただけます。
テキストよりも動画の方が理解しやすいという場合はぜひご覧ください。
セレクタとは
セレクタとは、jQueryで要素を選択するための文字列のことです。
例えば、以下のようなHTMLがあったとします。
(この例ではdivやpやh1が「要素」です)
<div id="div1"> <p class="p1">p1</p> <p class="p2">p2</p> <p class="p3">p3</p> </div> <div id="div2"> <h1 class="h1">h1</h1> <h1 class="h2">h2</h1> <h1 class="h3">h3</h1> </div>
このHTMLに対して、「p1クラスが設定されている要素を選択」する場合、$(“.p1”)というセレクタを使います。
(厳密には$(“.p1″)のうち”.p1″部分だけがセレクタです)
ほかにも様々な選択の仕方がありますので、順に見ていきましょう。
HTMLタグやクラス指定がありますね。
jQueryの$()の中にHTMLタグやclass属性の名前を書くと、その要素を取得できるんだよ。
HTMLタグであっても、class属性であっても同じように書いて取得できるんですね!
そうそう。HTMLタグとid属性とclass属性を中心に、主な指定方法について見てみよう!
セレクタを指定する書き方
セレクタを指定する書き方にはいくつかの種類がありますが、本稿では以下のセレクタについて解説します。
- 要素セレクタ:HTMLタグで指定
- クラスセレクタ:class属性で指定
- IDセレクタ:id属性で指定
- グループセレクタ:複数のセレクタを組み合わせて指定
- 子孫セレクタ:階層的に要素を指定
- 属性セレクタ(属性フィルタ):要素の属性をもとに指定
セレクタの書き方を、以下のHTMLの要素を例に説明します。
「ここにセレクタを使ったコードを書きます」の部分を書き換えながら確認していきましょう。
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> </head> <body> <div id="div1"> <p class="pKisu">p1</p> <p class="pGusu">p2</p> <p class="pKisu">p3</p> <p class="pGusu">p4</p> </div> <div id="div2"> <h1 id="h1">h1</h1> <h1 id="h2">h2</h1> <h1 id="h3">h3</h1> </div> <script src="https://code.jquery.com/jquery-3.4.1.min.js"></script> <script> // ここにセレクタを使ったコードを書きます。 </script> </body> </html>
要素セレクタ
「要素名」で、該当のHTML要素を選択します。
最もシンプルなセレクタです。
以下はすべてのp要素が選択されます。
なお「.css(“color”,”red”);」は選択された要素に対して、「文字の色を赤くする」処理です。
以降の例題でも、同じように使用します。
$("p").css("color","red");
クラスセレクタ
「.クラス名」と、ピリオドに続けてクラス名を記述することで、class属性に「該当するクラス名」が設定されている要素を選択します。
以下は、class属性に「pKisu」が指定されている「<p class=”pKisu”>p1</p>」と「<p class=”pKisu”>p3</p>」要素が選択されます。
$(".pKisu").css("color","red");
IDセレクタ
「#id」と、シャープ記号に続けてid属性の値を記述することで、id属性に「該当するid」が設定されている要素を選択します。
HTMLではid属性の値は重複しないため、IDセレクタでは、常に1つの要素が選択されます。
以下は、id属性に「h1」が指定されている「<h1 id=”h1″>h1</h1>」要素が選択されます。
$("#h1").css("color","red");
グループセレクタ
「セレクタ, セレクタ, セレクタ・・・」と、セレクタをカンマで区切ることで、該当する複数の要素を選択できます。
それぞれのセレクタは要素セレクタやクラスセレクタなどを組み合わせて利用できます。
以下は、class属性に「pKisu」が指定されている「<p class=”pKisu”>p1</p>」と「<p class=”pKisu”>p3</p>」要素、及びid属性に「h2」が指定されている「<h1 id=”h2″>h2</h1>」要素が選択されます。
$(".pGusu, #h2").css("color","red");
子孫セレクタ
「親セレクタ 子孫セレクタ」と、セレクタを空白で区切って指定することで、階層的に要素を選択できます。
こちらもそれぞれのセレクタは要素セレクタやクラスセレクタなどを組み合わせて利用できます。
なお、「親セレクタ > 子セレクタ」と「 > 」で区切ることで、親要素に対する直近の子要素のみを指定する方法もあります。
以下は、div1要素配下のすべてのp要素が選択されます。
$("#div1 p").css("color","red");
属性セレクタ
属性フィルタとも呼ばれます。
「[属性 = 値]」のように、「[]」の中に属性と値を指定することで、細かな選択が可能です。
演算子は「=」以外にも、以下のような様々な指定ができます。
- != :一致しない
- *= :部分一致
- ~= :スペースで区切られた単語ベースでの一致
- $= :後方一致
また、「要素名[属性セレクタ][属性セレクタ]」のように、組み合わせての使用も可能です。
以下は、h1要素でid属性が「h2ではない」要素が選択されます。
$("h1[id!='h2']").css("color","red");
今回の記事は以上です。
まとめ
今回は、セレクタを使った要素の選択方法を書いていきました。
HTMLタグとid属性とclass属性を中心に、主な指定方法についていくつか例を確認してきましたが、セレクタには他にも「liの最後の要素」や、「入れ子になっているクラス内のクラス要素」など、様々な要素を選択できます。
セレクタを使いこなすことができればコードも簡潔になります。
ぜひ勉強してみてください。
指定したidやHTMLタグの中にあるテキストの色が変わっていますね。
JavaScriptだけの場合だと、getElementById関数では、id属性しか取得できなくて、他の関数を使わなければならなかったけど、jQueryだとまとめて同じように書けるんだ。
それは、良いですね!
もっと違う指定の仕方などもできるんだけど、とりあえずid属性、class属性、HTMLタグを指定して要素を選択できる、そしてCSSなどを変更できるって覚えておきたいね。
JavaScriptを学習中の方へ
これで解説は終了です、お疲れさまでした。
- つまずかず「効率的に」学びたい
- 副業や転職後の「現場で使える」知識やスキルを身につけたい
プログラミングを学習していて、このように思ったことはありませんか?
テックアカデミーのフロントエンドコースでは、第一線で活躍する「プロのエンジニア」が教えているので、効率的に実践的なスキルを完全オンラインでしっかり習得できます。
合格率10%の選考を通過した、選ばれたエンジニアの手厚いサポートを受けながら、JavaScript・jQueryを使ったWebサービス開発を学べます。
まずは一度、無料体験で学習の悩みや今後のキャリアについて話してみて、「現役エンジニアから教わること」を実感してみてください。
時間がない方、深く知ってから体験してみたい方は、今スグ見られる説明動画から先に視聴することをおすすめします!