jQueryでクリック要素のクラスをカンタン取得!サンプルコード付きで徹底解説

2024-04-20

jQueryでクリックされた要素のクラスを取得する方法

方法1: this オブジェクトを使用する

この方法は、最もシンプルでよく使われる方法です。 this オブジェクトは、イベントが発生した要素自身を指します。以下のコード例では、クリックされた要素のクラスを取得し、コンソールに出力しています。

$(document).ready(function(){
  $("button").click(function(){
    var className = $(this).attr("class");
    console.log(className);
  });
});

方法2: event.target プロパティを使用する

この方法は、this オブジェクトの代わりに、event.target プロパティを使用して、クリックされた要素を取得する方法です。以下のコード例は、方法1と同様の処理を行っていますが、event.target プロパティを使用しています。

$(document).ready(function(){
  $("button").click(function(event){
    var className = event.target.className;
    console.log(className);
  });
});

補足

  • 上記のコード例では、ボタン要素がクリックされた時の処理を記述していますが、他の要素でも同様の方法でクラスを取得できます。
  • クリックされた要素に複数のクラスが設定されている場合は、スペース区切りで取得されます。
  • 取得したクラス情報を使用して、要素のスタイルを変更したり、他の処理を実行したりすることができます。



HTML

<!DOCTYPE html>
<html lang="ja">
<head>
  <meta charset="UTF-8">
  <title>jQueryでクリックされた要素のクラスを取得</title>
  <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
</head>
<body>
  <button class="btn-primary">ボタン1</button>
  <button class="btn-success">ボタン2</button>
  <button class="btn-info">ボタン3</button>

  <script>
    $(document).ready(function(){
      $("button").click(function(){
        var className = $(this).attr("class");
        console.log(className);
      });
    });
  </script>
</body>
</html>

JavaScript

上記コードを実行すると、各ボタンをクリックした際に、そのボタンのクラス名がコンソールに出力されます。

説明

  • HTML部分では、3つのボタン要素を作成しています。それぞれのボタンには、btn-primarybtn-successbtn-infoというクラスが設定されています。
  • JavaScript部分では、jQueryの ready() 関数を使用して、DOMがロードされた後に処理を実行しています。
  • $("button") セレクタで、すべてのボタン要素を選択します。
  • click() イベントハンドラを設定し、ボタンがクリックされた際に処理を実行します。
  • $(this).attr("class") で、クリックされた要素のクラス属性を取得します。
  • 取得したクラス名は console.log() でコンソールに出力されます。

このサンプルコードを参考に、ご自身の用途に合わせてアレンジしてみてください。

  • このサンプルコードでは、単純な例のため、エラー処理などは考慮されていません。実用的なコードを作成する場合は、必要に応じてエラー処理を追加するなど、適切なコーディングを行ってください。
  • クリックされた要素のスタイルを変更したり、他の処理を実行したりするには、取得したクラス情報を使用して、必要な処理を記述する必要があります。



jQueryでクリックされた要素のクラスを取得するその他の方法

closest() メソッドは、指定されたセレクタに一致する最近祖先要素を取得します。このメソッドを使用して、クリックされた要素から親要素を辿り、目的のクラスを持つ要素を取得することができます。

$(document).ready(function(){
  $(".container").on("click", "button", function(){
    var className = $(this).closest(".target-class").attr("class");
    console.log(className);
  });
});

上記のコード例では、.container 要素内の button 要素がクリックされた際に、その要素から .target-class クラスを持つ最近祖先要素のクラスを取得し、コンソールに出力しています。

$(document).ready(function(){
  $("button").click(function(){
    var classNames = [];
    $(this).parents().each(function(){
      if ($(this).hasClass("target-class")) {
        classNames.push($(this).attr("class"));
      }
    });
    console.log(classNames);
  });
});

上記のコード例では、button 要素がクリックされた際に、その要素からすべての祖先要素を繰り返し処理し、.target-class クラスを持つ要素があれば、その要素のクラスを取得して配列 classNames に格納し、コンソールに出力しています。

$(document).ready(function(){
  $(".container").on("click", "button", function(){
    var className = $(this).siblings().filter(".target-class").attr("class");
    console.log(className);
  });
});

上記以外にも、状況に応じて様々な方法が考えられます。最適な方法は、具体的な要件や状況によって異なります。ご自身の目的に合った方法を選択してください。


jquery


jQuery Mobileページでローディング表示をカスタマイズするには?

概要ajaxStartイベントは、jQueryによるすべてのAJAXリクエストが開始される前に発生し、ajaxStopイベントは、すべてのAJAXリクエストが完了した後に発生します。これらのイベントを利用して、ローディングスピナーを表示/非表示することができます。...


JavaScriptアニメーションで要素を左からスライドさせて表示する方法

以下の準備が必要です。jQuery ライブラリjQuery effects プラグインjQuery ライブラリ は公式サイトからダウンロードできます。https://jquery. com/download/jQuery effects プラグイン は、jQuery ライブラリに含まれていないため、別途ダウンロードする必要があります。...


JavaScriptで画像の本来のサイズを取得する

naturalWidthとnaturalHeightプロパティを使用するこの方法は、画像が完全にロードされた後に、naturalWidthとnaturalHeightプロパティを使用して、画像の本来の幅と高さを取得します。getBoundingClientRectメソッドを使用する...


クッキー操作はjQueryにお任せ! 作成、読み取り、削除をわかりやすく解説

クッキーは、Webサイトがユーザーのブラウザに少量のデータを保存するために使用できる便利なツールです。ログイン情報、ユーザー設定、ショッピングカートの内容などを保存するのに役立ちます。jQueryは、人気のあるJavaScriptライブラリであり、Web開発をより簡単にする多くの機能を提供しています。...


jQuery Ajax JSON:エラー「TypeError: $.ajax(...) is not a function?」で困った時のトラブルシューティング

「TypeError: $.ajax(...) is not a function?」エラーは、jQueryライブラリを使用してAjaxリクエストを実行しようとした場合に発生する一般的なエラーです。このエラーは、主に以下の2つの原因によって発生します。...