jQueryで要素を選択するセレクタの使い方【初心者向け】

プログラミング初心者向けに、jQueryでセレクタを使って特定の要素を選択する方法を解説しています。セレクタの書き方を説明し、実際にセレクタで要素を指定して動きを確認しています。セレクタによって作業も効率化するので、ぜひご覧ください。

TechAcademyマガジンはオンラインのプログラミングスクールTechAcademy [テックアカデミー]が運営する教育×テクノロジーのWebメディアです。初心者でもすぐ勉強できる記事が1,000以上あります。

JavaScriptのライブラリであるjQueryでセレクタの使い方を解説しています。

ある要素だけ動きを出したいなど特定の要素に処理を行う際に便利なので、ぜひ理解していきましょう。

 

なお本記事は、オンラインブートキャンプ フロントエンドコース(JavaScript・jQuery講座)の内容をもとにしています。

 

今回の記事の内容は動画でもご覧いただけます。
テキストよりも動画の方が理解しやすいという場合はぜひご覧ください。

 

セレクタとは

一言で言えば、特定の要素を選択するための処理のことです。例を挙げて説明してみましょう。

以下のようなhtmlがあったとします。

<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>

jQueryを実装する時に「p1のみに処理を適用したい」であったり、「h1属性全てに処理を適用したい」など処理によって様々な要望が出てくると思います。そのようなjQueryを任意の要素にのみ適用させるための処理がセレクタです。

 

20160620

 

HTMLタグやクラス指定がありますね。

 

20163020-2

 

jQueryの$()の中にHTMLタグやclass属性の名前を書くと、その要素を取得できるんだよ。

 

20160620

 

HTMLタグであっても、class属性であっても同じように書いて取得できるんですね!

 

20163020-2

 

そうそう。HTMLタグとid属性とclass属性を中心に、主な指定方法について見てみよう!

 

セレクタを指定する書き方

セレクタを指定する書き方にはいくつかの種類がありますが、当記事では以下のセレクタについて解説します。

  • 要素セレクタ:HTMLタグで指定
  • クラスセレクタ:class属性で指定
  • IDセレクタ:id属性で指定
  • グループセレクタ:複数のセレクタを組み合わせて指定
  • 子孫セレクタ:階層的に要素を指定
  • 属性セレクタ(属性フィルタ):要素の属性をもとに指定

 

セレクタを指定する書き方を、以下のhtmlの要素を例に説明します。「ここにセレクタを指定するコードを書きます」の部分を書き換えながら確認して行きましょう。

<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
    <script src="https://code.jquery.com/jquery-3.0.0.min.js"></script>
    <script>
      $( function() {
        // ここにセレクタを指定するコードを書きます。
      } ); 
    </script>
  </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>
  </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");

今回の記事は以上です。

 

[PR] JavaScript・jQueryで挫折しない学習方法を動画で公開中

まとめ

今回は、セレクタを使った要素の指定方法を書いていきました。

HTMLタグとid属性とclass属性を中心に、主な指定方法ついていくつか例を確認してきましたが、セレクタには他にも「liの最後の要素」や、「入れ子になっているクラス内のクラス要素」など、様々な要素を指定することが出来ます。

セレクタを使いこなすことができればコードも簡潔になります。ぜひ勉強してみてください。

 

20160620

 

指定したidやHTMLタグの中にあるテキストの色が変わっていますね。

 

20163020-2

 

JavaScriptだけの場合だと、getElermentById関数では、id属性しか取得出来なくて、他の関数を使わなければならなかったけど、jQueryだとまとめて同じように書けるんだ。

 

20160620

 

それは、良いですね!

 

20163020-2

 

もっと違う指定の仕方なども出来るんだけど、とりあえずid属性、class属性、HTMLタグを指定して要素を取得できる、そしてCSSなどを変更できるって覚えておきたいね。

 

[お知らせ]TechAcademyでは最短4週間でフロントエンドの技術が身につくフロントエンドオンラインブートキャンプを開催しています。jQueryを使ってリッチなWebサービスを作りたい方はぜひご覧ください。