jQueryで複数要素のクリックイベントをまとめて取得する方法
同じクラス名を持つ複数のHTML要素に対して、jQueryを使って効率的にクリックイベントを取得・処理する方法を紹介します。
単一のクラス名で複数要素のクリックイベントを取得
$('.クラス名').on('click', function() { ... });
のように、jQueryセレクタでクラス名を指定することで、該当する全ての要素にクリックイベントを設定できます。- イベント発生時の処理は、
function()
内に記述します。
thisキーワードでクリックされた要素を特定
- イベント処理関数内で
$(this)
を使用することで、クリックされた要素自身を取得できます。 - 取得した要素に対して、
text()
やval()
など、jQueryのメソッドを使用して操作できます。
イベントの伝播と停止
event.stopPropagation();
を使用すると、クリックイベントの上位要素への伝播を停止できます。- 誤作動を防いだり、特定の要素のみにイベントを限定したい場合に有効です。
サンプルコード
<button class="target-button">ボタン1</button>
<button class="target-button">ボタン2</button>
<button class="target-button">ボタン3</button>
<script>
$('.target-button').on('click', function(event) {
event.stopPropagation();
alert($(this).text() + 'がクリックされました');
});
</script>
上記のコードは、「target-button」クラスを持つ全てのボタンにクリックイベントを設定し、クリックされたボタンのテキストをアラートで表示する例です。
その他関連キーワード
- jQuery
- クリックイベント
- 複数要素
- イベントハンドラ
- thisキーワード
- イベント伝播
関連情報
よくある質問
質問 | 回答 |
---|---|
複数のクラスを持つ要素にクリックイベントを設定するには? | $('.クラス1.クラス2') のように、複数のクラス名をドットで繋いで指定します。 |
クリックされた要素の親要素を取得するには? | $(this).parent() を使用します。 |
クリックイベントを一度だけ実行するには? | one('click', function() { ... }) を使用します。 |
その他の参考記事:jquery on 複数