jQueryセレクタの使い方を初心者にもわかりやすく徹底解説!

内容に広告・プロモーションを含みます
jQueryセレクタの使い方を初心者にもわかりやすく徹底解説!
  • URLをコピーしました!
悩む人

jQueryのセレクタって、たくさん種類があって何をどう使えばいいのか分からない…

そんな風に感じたことはありませんか?

この記事は、jQuery初心者の方に向けて、「セレクタの種類と使い方」を体系的に分かりやすくまとめた内容です。

この記事を読むことで、セレクタの役割や使いどころが明確になり、実際のコーディング作業がスムーズになります。

以下のような方におすすめ
  • jQueryのセレクタの基本から応用までを一通り学びたい
  • 要素の位置や属性、階層などに応じた柔軟な選択ができるようになりたい
  • 実践で役立つセレクタの書き方を整理したい
この記事を書いた人
  • フリーランスWEBクリエイターとして10年の活動実績。WEB制作歴トータル17年。
  • 要件定義からデザイン・コーディングまで全て担当。
  • Webサイト、LPの制作数、延べ100サイト以上。
  • 個人での売上1300万円超えを機に法人化
  • 現在は株式会社Spring DAY代表、兼クリエイティブディレクターとして現役活動中
かすがです
目次

jQueryのセレクタとは?

jQueryで処理を行う際のポイントを簡単にいうと

  • どの要素に(セレクタ)
  • 何をするか(メソッド)

という指定が必要です。

以下、簡単な例です。

今回は「どの要素に」に当たるjQueryのセレクタについて初心者の方にもわかりやすく解説します。

基本のセレクタ

ここからは、Webページの要素を的確に選択するための基本セレクタについて、具体的な例とともに理解を深めていきましょう。

スクロールできます
セレクタ説明
要素セレクタ$(‘div’)すべてのdiv要素を選択
IDセレクタ$(‘#header’)IDが”header”の要素を選択
classセレクタ$(‘.btn’)classが”btn”の要素をすべて選択
グループセレクタ$(‘h1, h2, h3’)すべてのh1, h2, h3要素を選択
ユニバーサルセレクタ$(‘*’)すべてのHTML要素を選択する

要素セレクタ

要素セレクタは、HTMLのタグ名を指定することで、該当するすべての要素を選択できます。

$('div')
コード例と結果はこちら

HTML

<div class="box">
  <h2>タイトル</h2>
  <p>テキスト</p>
</div>
<div class="box">
  <h2>タイトル</h2>
  <p>テキスト</p>
</div>

jQuery

$(function(){
  $('h2').css({'color':'#0272fc'});
  $('p').css({'color':'#60b6ff'});
});

結果

See the Pen 「jQuery セレクタ」要素セレクタ by kasuga (@kntkfmgf-the-vuer) on CodePen.

IDセレクタ

#を使って記述します。IDセレクタは非常に高速に動作しますが、同じIDを複数の要素に使用しないよう注意が必要です。

$('#header')
コード例と結果はこちら

HTML

<div id="box1">
  <h2>タイトル</h2>
  <p>テキスト</p>
</div>
<div id="box2">
  <h2>タイトル</h2>
  <p>テキスト</p>
</div>

jQuery

$(function(){
  $('#box1').css({'background':'#fff'});
});

結果

See the Pen 「jQuery セレクタ」IDセレクタ by kasuga (@kntkfmgf-the-vuer) on CodePen.

classセレクタ

複数の要素に共通のスタイルや機能を適用したいときに使うのがclassセレクタです。.(ドット)を使って指定します。

$('.btn')
コード例と結果はこちら

HTML

<div class="box">
  <h2>タイトル</h2>
  <p>テキスト</p>
</div>
<div class="box">
  <h2>タイトル</h2>
  <p>テキスト</p>
</div>

jQuery

$(function(){
  $('.box').css({'border':'1px solid #ccc'});
});

結果

See the Pen 「jQuery セレクタ」要素セレクタ by kasuga (@kntkfmgf-the-vuer) on CodePen.

グループセレクタ

複数の異なるセレクタをカンマ(,)で区切ることで、まとめて選択する方法です。効率よく複数の要素を対象にしたいときに活用できます。

$('h1, h2, h3')
コード例と結果はこちら

HTML

<div class="box">
  <h2>タイトル</h2>
  <p>テキスト</p>
</div>
<div class="box">
  <h2>タイトル</h2>
  <p>テキスト</p>
</div>

jQuery

$(function(){
  $('h2, p').css({'color':'#0272fc'});
});

結果

See the Pen 「jQuery セレクタ」要素セレクタ by kasuga (@kntkfmgf-the-vuer) on CodePen.

ユニバーサルセレクタ

すべてのHTML要素を選択するセレクタです。基本的には * を使って記述します。

$('*')
コード例と結果はこちら

HTML

<div class="box">
  <h2>タイトル</h2>
  <p>テキスト</p>
</div>
<div class="box">
  <h2>タイトル</h2>
  <p>テキスト</p>
</div>

jQuery

$(function(){
  $('*').css({'color':'#0272fc'});
});

結果

See the Pen 「jQuery セレクタ」グループセレクタ by kasuga (@kntkfmgf-the-vuer) on CodePen.

階層関係のセレクタ

HTMLは親子構造で成り立っており、ある要素が他の要素の中に含まれる形で記述されています。

こうした階層構造を意識して要素を選択したい場面は、実際の開発で非常によくあります。

jQueryの階層セレクタを使えば、親・子・兄弟といった関係性に基づいた柔軟な選択が可能になります。

ここでは、それぞれの階層セレクタの特徴や使い方を、具体的なコード例とともに解説していきます。

スクロールできます
セレクタ説明
子セレクタ$(‘ul > li’)親要素に直下で含まれている子要素を選択
子孫セレクタ$(‘div p’)要素の中に含まれているすべての子孫要素を選択
隣接セレクタ$(‘h2 + p’)ある要素の直後にある兄弟要素を選択
間接セレクタ$(‘h2 ~ p’)ある要素の後に位置するすべての兄弟要素の中から、指定した要素を選択

子セレクタ

子セレクタは、特定の親要素に直下で含まれている子要素を選択します。記述には >(大なり記号)を使用します。

$('ul > li')
コード例と結果はこちら

HTML

<div class="box">
  <h2>タイトル</h2>
  <p>テキスト</p>
</div>
<div class="box">
  <div>
    <h2>タイトル</h2>
    <p>テキスト</p>
  </div>
</div>

jQuery

$(function(){
  $('.box > h2').css({'color':'#0272fc'});
});

結果

See the Pen 「jQuery セレクタ」ユニバーサルセレクタ by kasuga (@kntkfmgf-the-vuer) on CodePen.

子孫セレクタ

子孫セレクタは、指定した要素の中に含まれているすべての子孫要素(直下だけでなく深い階層も含む)を選択します。間にどれだけ他の要素が挟まっていても有効です。

$('div p')
コード例と結果はこちら

HTML

<div class="box">
  <h2>タイトル</h2>
  <p>テキスト</p>
</div>
<div class="box">
  <div>
    <h2>タイトル</h2>
    <p>テキスト</p>
  </div>
</div>

jQuery

$(function(){
  $('.box p').css({'color':'#0272fc'});
});

結果

See the Pen 「jQuery セレクタ」子孫セレクタ by kasuga (@kntkfmgf-the-vuer) on CodePen.

隣接セレクタ

ある要素の直後にある兄弟要素を選択したいときに使うのが隣接セレクタです。+ を使って記述します。

$('h2 + p')
コード例と結果はこちら

HTML

<ul>
  <li>リスト1</li>
  <li>リスト2</li>
  <li>リスト3</li>
  <li>リスト4</li>
</ul>

jQuery

$(function(){
  $('li + li').css({//2個目以降のliにスタイルを適用
    'color':'#0272fc',
    'margin-top':'20px',
  });
});

結果

See the Pen 「jQuery セレクタ」子孫セレクタ by kasuga (@kntkfmgf-the-vuer) on CodePen.

間接セレクタ

間接セレクタは、ある要素の後に位置するすべての兄弟要素の中から、指定した要素を選択します。記述には ~ を使用します。

$('h2 ~ p')
コード例と結果はこちら

HTML

<div class="box">
  <h2>タイトル</h2>
  <p class="text">テキスト</p>
  <p>テキスト</p>
  <p class="text">テキスト</p>
  <p>テキスト</p>
</div>

jQuery

$(function(){
  $('h2 ~ .text').css({//h2の後に出てくる「.text」だけにスタイルを適用
    'color':'#0272fc',
  });
});

結果

See the Pen 「jQuery セレクタ」間接セレクタ by kasuga (@kntkfmgf-the-vuer) on CodePen.

擬似クラスセレクタ

HTMLの構造だけでは捉えきれない「状態」や「条件」に基づいて要素を選択したいとき、jQueryでは「擬似クラスセレクタ」が活躍します。

特定の順番や属性の有無、兄弟要素との関係性など、柔軟な指定が可能で、より高度なDOM操作を実現できます。

ここでは、代表的な擬似クラスセレクタを一つずつ見ていきましょう。

スクロールできます
セレクタ説明
first-child$(‘li:first-child’)親要素の中で最初に現れる子要素を選択
first-of-type$(‘p:first-of-type’)親要素から見て、最初に現れる要素を選択
last-child$(‘li:last-child’)親要素の中で一番最後にある子要素を選択
last-of-type$(‘p:last-of-type’)親要素から見て、最後に現れる要素を選択
nth-child$(‘li:nth-child(3)’)親要素から見て、n番目の子要素を選択
nth-of-type$(‘p:nth-of-type(2)’)同じタグのうち、n番目の要素を選択
nth-last-child$(‘li:nth-last-child(2)’)最後から数えてn番目の子要素を選択
nth-last-of-type$(‘p:nth-last-of-type(2)’)同じタグの中で、最後からn番目の要素を選択
only-child$(‘div:only-child’)親要素の中で唯一の子要素を選択
only-of-type$(‘p:only-of-type’)同じタグの中で、唯一存在する要素を選択
not$(‘p:not(.highlight)’)指定したセレクタにマッチしない要素を選択
empty$(‘div:empty’)中に何のコンテンツも含まない要素を選択

first-child

親要素の中で最初に現れる子要素を選択します。必ず1番目の要素が対象になります。

この例では、すべてのli要素のうち、最初のli要素だけが選択されます。

$('li:first-child')

first-of-type

親要素から見て、最初に現れる要素を選択します。

:first-childとの違いは、親要素の中で1番目の子要素でなくて良い点です。

親要素の中で2番目の子要素だったとしても、そのタグは初めて現れたのであれば対象になります。

$('p:first-of-type')
コード例と結果はこちら

HTML

<div class="box">
  <h2>タイトル</h2>
  <p>テキスト</p>
  <p>テキスト</p>
  <p>テキスト</p>
  <p>テキスト</p>
</div>

jQuery

$(function(){
  $('p:first-of-type').css({'color':'blue',});
  //pタグは親要素からみて2番目(h2タグの後)だが、pタグとして最初に出てくる要素にスタイルが適用される
  $('p:first-child').css({'color':'red',});
  //「first-child」の場合は必ず1番目に出てこないと対象にならないため、この例の場合は何も適用されない
});

結果

See the Pen 「jQuery セレクタ」間接セレクタ by kasuga (@kntkfmgf-the-vuer) on CodePen.

かすが

ちょっとややこしいですが、上のコード例を見れば違いがわかりますよ!

last-child

親要素の中で一番最後にある子要素を選択します。

この例では、すべてのli要素のうち、最後のli要素だけが選択されます。

$('li:last-child')

last-of-type

親要素から見て、最後に現れる要素を選択します。

:last-childとの違いは、親要素の中で最後の子要素でなくて良い点です。そのタグとして最後であれば対象になります。

$('p:last-of-type')
コード例と結果はこちら

HTML

<div class="box">
  <h2>タイトル</h2>
  <p>テキスト</p>
  <p>テキスト</p>
  <p>テキスト</p>
  <p>このテキストが対象</p>
  <h2>タイトル</h2>
</div>

jQuery

$(function(){
  $('p:last-of-type').css({'color':'blue',});
  //pタグは親要素からみて最後の子要素ではないが、pタグとして最後の要素にスタイルが適用される
  $('p:last-child').css({'color':'red',});
  //「last-child」の場合は必ず最後に出てこないと対象にならないため、この例の場合は何も適用されない
});

結果

See the Pen 「jQuery セレクタ」last-of-type by kasuga (@kntkfmgf-the-vuer) on CodePen.

nth-child(n)

親要素から見て、n番目の子要素を選択します。nには数字やキーワード(odd, even)などを指定できます。

違う種類のタグもカウントに含まれます

$('li:nth-child(3)')   // 3番目の子要素
$('li:nth-child(odd)') // 奇数番目の要素

nth-of-type(n)

同じタグのうち、n番目の要素を選択します。

:nth-childとの違いは、違う種類のタグはカウントに含まれない点です。

$('p:nth-of-type(2)')
コード例と結果はこちら

HTML

<div class="box">
  <h2>タイトル</h2>
  <p>nth-childはここが対象</p>
  <p>nth-of-typeはここが対象</p>
  <p>テキスト</p>
  <p>テキスト</p>
  <h2>タイトル</h2>
</div>

jQuery

$(function(){
  $('p:nth-of-type(2)').css({'color':'#0272fc',});
  //pタグの中で2番目の要素にスタイルが適用される
  $('p:nth-child(2)').css({'color':'#60b6ff',});
  //「nth-child」の場合は、他の種類のタグも含めて2番目の要素にスタイルが適用される
});

結果

See the Pen 「jQuery セレクタ」last-of-type by kasuga (@kntkfmgf-the-vuer) on CodePen.

nth-last-child(n)

最後から数えてn番目の子要素を選択します。違う種類のタグもカウントに含まれます

$('li:nth-last-child(2)')

nth-last-of-type(n)

同じタグの中で、最後からn番目の要素を選択します。

$('p:nth-last-of-type(2)')

:nth-last-childとの違いは、違う種類のタグはカウントに含まれない点です。

コード例と結果はこちら

HTML

<div class="box">
  <h2>タイトル</h2>
  <p>テキスト</p>
  <p>テキスト</p>
  <p>nth-last-of-typeはここが対象</p>
  <p>nth-childはここが対象</p>
  <h2>タイトル</h2>
</div>

jQuery

$(function(){
  $('p:nth-last-of-type(2)').css({'color':'#0272fc',});
  //pタグの中で最後から2番目の要素にスタイルが適用される
  $('p:nth-last-child(2)').css({'color':'#60b6ff',});
  //「nth-child」の場合は、他の種類のタグも含めて最後から2番目の要素にスタイルが適用される
});

結果

See the Pen 「jQuery セレクタ」nth-of-type by kasuga (@kntkfmgf-the-vuer) on CodePen.

only-child

親要素の中で唯一の子要素を選択します。違う種類のタグが存在する場合は適用されません

$('div:only-child')

only-of-type

同じタグの中で、唯一存在する要素を選択します。

:only-childとの違いは、違う種類のタグが存在しても適用される点です。

$('p:only-of-type')
コード例と結果はこちら

HTML

<div class="box">
  <h2>タイトル</h2>
  <p>テキスト</p>
</div>

jQuery

$(function(){
  $('p:only-of-type').css({'color':'blue',});
  //h2タグもあるが、pタグは1つだけなのでスタイルが適用される
  $('p:only-child').css({'color':'red',});
  //「nth-child」の場合は、違うの種類のタグがあるとスタイルが適用されない
});

結果

See the Pen 「jQuery セレクタ」nth-last-of-type by kasuga (@kntkfmgf-the-vuer) on CodePen.

:not(selector)

指定したセレクタにマッチしない要素を選択します。

$('p:not(.highlight)')
コード例と結果はこちら

HTML

<div class="box">
  <h2>タイトル</h2>
  <p>テキスト</p>
  <p>テキスト</p>
  <p class="hiright">テキスト</p>
  <p>テキスト</p>
</div>

jQuery

$(function(){
  $('p:not(.hiright)').css({'color':'#0272fc',});
  //「.hiright」以外のpタグにスタイルを適用
});

結果

See the Pen 「jQuery セレクタ」:not by kasuga (@kntkfmgf-the-vuer) on CodePen.

:empty

中に何のコンテンツも含まない要素(テキストも子要素もなし)を選択します。

$('div:empty')
コード例と結果はこちら

HTML

<div class="box">
  <h2>タイトル</h2>
  <p>テキスト</p>
  <p>テキスト</p>
  <p></p>
  <p>テキスト</p>
</div>

jQuery

$(function(){
  $('p:empty').css({
    'background':'#0272fc',
    'height':'40px',
  });
});

結果

See the Pen 「jQuery セレクタ」not by kasuga (@kntkfmgf-the-vuer) on CodePen.

属性セレクタ

HTML要素には、idclass の他にも様々な属性(href, src, type, data-* など)が付けられており、これらの属性を利用して要素を選択できるのが「属性セレクタ」です。

jQueryの属性セレクタを活用すれば、より柔軟で条件に合致した要素選択が可能になり、特定の属性値に基づいた処理が格段に効率的になります。

ここでは、よく使われる属性セレクタの使い方を種類ごとに解説していきます。

スクロールできます
属性
指定の属性値の要素を選択する$(‘div’)
指定の属性値と等しくない要素を選択する$(‘#header’)
指定の属性値で始まる要素を選択する$(‘.btn’)
指定の属性値で終わる要素を選択する$(‘h1, h2, h3’)
指定の属性値と部分一致する要素を選択する$(‘*’)

指定の属性値の要素を選択する

特定の属性とその値を持つ要素だけを選びたい場合に使用します。

この例では、type="text" が設定されているすべての <input> 要素を選択します。

$('input[type="text"]')

指定の属性値と等しくない要素を選択する

特定の属性値を「持たない」または「異なる」要素を選択したい場合には、!= を使います。

この例では、type 属性が checkbox ではないすべての <input> 要素が対象になります。

$('input[type!="checkbox"]')

指定の属性値で始まる要素を選択する

ある属性値が特定の文字列で始まっている要素を対象にする場合は、^= を使用します。

この例では、href 属性が "https" で始まるすべてのリンクを選択します。

$('a[href^="https"]')

指定の属性値で終わる要素を選択する

特定の文字列で終わっている属性値を持つ要素には、$= を使用します。

この例では、.jpg で終わる画像ファイルを選択します。

$('img[src$=".jpg"]')

指定の属性値と部分一致する要素を選択する

属性値の中に特定の文字列が「含まれている」要素を選択するには、*= を使います。

この例では、data-info 属性に "user" を含むすべての <div> 要素が対象となります。

$('div[data-info*="user"]')

WEBデザイナー・フロントエンドのスキルを確実に身につけたい方へ

「WEBデザインやフロントエンドを学びたい」と思い立ったとき、多くの方がまず独学を選びます。

しかし、独学では「何をどこから学べばいいかわからない」「つまずいたときに誰にも聞けない」といった壁にぶつかることも少なくありません。

一方、スクールで学べば、正しい順序で、現場で使えるスキルを効率よく習得することができます。最短ルートでスキルを身につけたい方には、スクール学習がおすすめです。

かすが

私は26歳で印刷業からWEBデザイナーを目指して学び始めましたが、やはり独学に限界を感じ短期スクールで学びました。本気でスキルを身につけたいならスクールはマジで行った方が良いです!

スクールで学ぶ5つのメリット
  • カリキュラムが体系化されているため、基礎から応用まで無駄なく学べる
  • 現役のプロから実践的なフィードバックを受けられる
  • わからないことをすぐに質問・解決できる環境がある
  • 制作課題を通じて、ポートフォリオが作成できる
  • 学習仲間や講師とのつながりが、モチベーション維持につながる
スクール選びでチェックすべき5つのポイント
  • カリキュラムが現場で必要とされる技術に対応しているか
  • 現役デザイナー・エンジニアが講師として在籍しているか
  • ポートフォリオ制作のサポートが充実しているか
  • 卒業後の就職・転職支援が用意されているか
  • オンライン・通学など、自分の生活スタイルに合った受講形式

遠回りせず、確実にスキルを身につけたいなら、プロに教わるのが一番の近道です。

WEBデザイナー・フロントエンドエンジニアとして一歩踏み出したいあなたにぴったりのスクールを、下記の記事でご紹介しています。ぜひチェックしてみてください。

jQueryのセレクタまとめ

ここまで、jQueryで使用できる様々なセレクタについて解説してきました。

セレクタの使い方を正しく理解し、状況に応じて適切に使い分けることで、より効率的なDOM操作が可能になります。

以下に、各カテゴリごとのセレクタの特徴をまとめますので、復習や実装時の参考にしてください。

基本のセレクタ

HTML要素を直接指定する基本的なセレクタ群。最初に覚えるべき重要なセレクタです。

階層関係のセレクタ

HTMLの構造(親・子・兄弟)に基づいて要素を絞り込むためのセレクタです。

擬似クラスセレクタ

要素の状態や順序に基づいて選択できる、柔軟性の高いセレクタです。

属性セレクタ

要素の属性や属性値に基づいて、より詳細な条件指定ができるセレクタです。

セレクタを使いこなすコツ

  • 組み合わせて使う:基本セレクタ+属性セレクタ、擬似クラス+階層セレクタなど、複合的に指定することで精度が高まる。
  • パフォーマンスを意識:不要に広範囲を指定すると処理が重くなるため、対象を限定する工夫が重要。
  • 目的別に選び分ける:順番・属性・構造など、何を基準に要素を選ぶかを明確にしてからセレクタを選ぶと効率的です。

以下の記事では、jQueryの初心者に本当におすすめできる書籍を厳選して紹介しています。

「何から始めたらいいかわからない」という方にも、自信をもっておすすめできる7冊をまとめました。

ぜひこちらもチェックしてみてください。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次