jQueryのhasClass()でクラスが存在するかどうか確認する方法について【jQuery】

最終更新日:

公開日:2024-10-15

ページ内に広告が含まれています。
jQueryのhasClass()でクラスが存在するかどうか確認する方法について【jQuery】

jQueryでアニメーションをつける際などによく使用するhasClassメソッド。
今回はこのhasClassメソッドについて、基本的な使い方から注意点まで詳しく解説していきます。

hasClassメソッドとは

hasClassメソッドは、指定したクラスが存在するかどうかを調べるためのメソッドです。
指定したクラスが存在する場合にはtrue、存在しない場合にはfalseを返しますので、これを利用してif文で条件分岐させて処理をするといった流れになるのが一般的です。

hasClassメソッドの基本的な使い方

まずはhasClassメソッドの基本的な使い方を解説していきます。
基本的な構文は以下となります。

対象要素.hasClass(クラス名);

このように対象となる要素にhasclassメソッドを繋げ、引数に存在を確認したいクラス名を記述します。
例として、以下のHTMLを用意し、hasClassメソッドで確認してみます。

<p class="sampleClass">テキストテキストテキスト</p>
$("p").hasClass("sampleClass");

上記の内容を実行すると、クラスが存在するのでtrueを返します。
引数として指定するクラス名は完全一致となりますので、「sample」や「Class」ではfalseを返す点に注意してください。

hasClassメソッドの使用例

続いてhasClassの使用例として、hasClassメソッドでクラスが存在するかどうかをif文で条件分岐させてみます。

if($("p").hasClass('sampleClass')){
    // クラスが存在する場合の処理
} else {
    // クラスが存在しない場合の処理
}

このif文での条件分岐を使用し、以下のようにul要素の中のliに指定のクラスがついているかどうかを、繰り返し処理を組み合わせて、クラスが存在する場合のみ特定の処理をするといった事も可能です。

<ul>
    <li class="list">リスト1</li>
    <li>リスト2</li>
    <li>リスト3</li>
    <li class="list">リスト4</li>
    <li>リスト5</li>
</ul>
$('li').each(function(){
    if($(this).hasClass('list')){
        // クラスが存在する場合の処理
        $(this).addClass('color-red');
    } 
});

上記の例では、liの数だけeach文で繰り返し、クラス「list」がついているliだけaddClassメソッドで「color-red」という別のクラスを付与しています。

複数のクラスを指定する場合の注意点

続いて、複数のクラスの存在を調べる際の注意点です。
最初に指定するクラス名は完全一致だと述べたように、複数クラスでも同じく完全一致になる為、クラス名はもちろん、クラスの順番も完全一致となります。

まずは以下のコードをご覧ください。

$("p").hasClass('sampleClass1 sampleClass2');

上記の記述だと「sampleClass1 sampleClass2」だとtrueを返し、「sampleClass2 sampleClass1」という順番や「sampleClass1」のように1つだけ一致していてもfalseを返します。

このようにクラスの順番や、部分一致ではfalseを返す点に注意してください。

さいごに

いかがでしたでしょうか。
クラスの存在を調べるhasClassメソッドは使用する事も多いメソッドになります。使い方や注意点をしっかり覚えたうえで使用していきましょう。

おすすめ記事

当ブログ運営者 ヒデ

北海道札幌市在住のフリーランスでWeb制作を行っているヒデです。Webコーディング(HTML・CSS・JSなど)やWordpressのカスタマイズ等のテクニック、困った時に確認できる分かりやすい解説を目標にして情報を発信していければと思っています。プロフィールはこちら

当サイトに関するご意見・ご感想・ご要望または仕事のご依頼は以下のフォームよりお願い致します。

お問い合わせ お仕事のご依頼
PAGE TOP