icon
icon

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

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

テックアカデミーマガジンは受講者数No.1のプログラミングスクール「テックアカデミー」が運営。初心者向けにプロが解説した記事を公開中。現役エンジニアの方はこちらをご覧ください。 ※ アンケートモニター提供元:GMOリサーチ株式会社 調査期間:2021年8月12日~8月16日  調査対象:2020年8月以降にプログラミングスクールを受講した18~80歳の男女1,000名  調査手法:インターネット調査

JavaScriptのライブラリであるjQueryでセレクタの使い方について、テックアカデミーのメンター(現役エンジニア)が実際のコードを使用して初心者向けに解説します。

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

 

目次

1時間でできる無料体験!

 

そもそも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");

 

今回の記事は以上です。

 

[PR] フロントエンドで副業する学習方法を動画で公開中

まとめ

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

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

セレクタを使いこなすことができればコードも簡潔になります。

ぜひ勉強してみてください。

 

大石ゆかり

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

田島悠介

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

大石ゆかり

それは、良いですね!

田島悠介

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

 

コラム

コスパとタイパ、両方結果的に良くなる良くなる学び方とは?

「スクールは高いし時間も縛られて効率が悪い」と考える方は多いと思います。
もちろん、時間も費用もかかることは間違いありません。
ただ 結果的に無駄な学びにお金も時間もかける方がリスクが高いという考えもあります。

コスパ・タイパ最適化の参考として、 テックアカデミー卒業生がスクールを選んだ理由 をご紹介します。

  • ・困ったときに、質問や相談できる相手がいるため挫折しなかった
  • ・プロとして必要なスキルのみを深く学べたので無駄がなかった
  • ・副業案件の提供と納品までのサポートがあったので目的を達成できた

安価・短期間で広く浅く学んでも意味がありません。 本当に自分の目的が達成できるか、それが重要です。
自分にどのスキルや学び方が合っているか、どんな学習方法かなど、お気軽に 無料相談 に参加してみませんか?

カウンセラー・現役のプロへ、何でも気軽に無料相談可能。 30分か60分お好きな時間が選べて、かつ3回まで すべて無料で ご利用できます。
無理な勧誘は一切ない ので、お気軽にご参加ください。

今なら相談した方限定の割引・参加特典付き! 無料相談はこちら

JavaScriptを学習中の方へ

これで解説は終了です、お疲れさまでした。

  • つまずかず「効率的に」学びたい
  • 副業や転職後の「現場で使える」知識やスキルを身につけたい

プログラミングを学習していて、このように思ったことはありませんか?

テックアカデミーのフロントエンドコースでは、第一線で活躍する「プロのエンジニア」が教えているので、効率的に実践的なスキルを完全オンラインでしっかり習得できます。

合格率10%の選考を通過した、選ばれたエンジニアの手厚いサポートを受けながら、JavaScript・jQueryを使ったWebサービス開発を学べます。

まずは一度、無料体験で学習の悩みや今後のキャリアについて話してみて、「現役エンジニアから教わること」を実感してみてください。

時間がない方、深く知ってから体験してみたい方は、今スグ見られる説明動画から先に視聴することをおすすめします!

初心者・未経験でもできる。まずはテックアカデミーに相談しよう

プログラミングを独学で学習していて、このように感じた経験はないでしょうか?

  • ・調べてもほしい情報が見つからない
  • ・独学のスキルが実際の業務で通用するのか不安
  • ・目標への学習プランがわからず、迷子になりそう

テックアカデミーでは、このような 学習に不安を抱えている方へ、マンツーマンで相談できる機会を無料で提供 しています。
30分間、オンラインでどんなことでも質問し放題です。

「受けてよかった」と感じていただけるよう カウンセラーやエンジニア・デザイナー があなたの相談に真摯に向き合います。

「自分に合っているか診断してほしい」
「漠然としているが話を聞いてみたい」

こんなささいな悩みでも大丈夫です。

無理な勧誘は一切ありません ので、まずはお気軽にご参加ください。
※体験用のカリキュラムも無料で配布いたします。(1週間限定)

今なら参加者限定の割引特典付き! 無料相談を予約する