ビューのレンダリングにサーバー側テクノロジ (JSP) を使用しています。したがってfor
、リストをループするループがあります。ここで、クリック リスナーを、リスト内の各項目に対してレンダリングされるボタンにバインドしたいと考えています。クリック リスナーのコードには項目 ID が必要ですが、JavaScript コードに渡す方法がわかりません。
requirejs
ソリューションに問題がある場合は、も使用します。
ビューのレンダリングにサーバー側テクノロジ (JSP) を使用しています。したがってfor
、リストをループするループがあります。ここで、クリック リスナーを、リスト内の各項目に対してレンダリングされるボタンにバインドしたいと考えています。クリック リスナーのコードには項目 ID が必要ですが、JavaScript コードに渡す方法がわかりません。
requirejs
ソリューションに問題がある場合は、も使用します。
html ID を JavaScript に渡す必要がないだけかもしれません。css クラスを使用して、DOM 内のボタンを取得できます。JavaScript コードは、使用するフレームワークによって異なります。
ネイティブ JavaScript では、次のようにボタンを取得できます。
var buttons = document.querySelectorAll('button.my_class');
必要なものに置き換えるmy_class
だけです。
これを行うことでボタンIDにアクセスできます:
var button_id = buttons[0].id
ボタンにアイテム ID を付けたい場合は、data
属性を使用できます。例えば :
<button id="my_button" data-id="item_id" />
data_id
JavaScript では、次のようにアクセスできます。
var item_id = buttons[0].getAttribute('data-id');
ほとんどのイベント ハンドラーでthis
は、 はイベントをトリガーした DOM ノードであるため、次のように機能します。
button.onclick = function() {
alert(this.id);
}
jQuery と requirejs を使用している場合 、これは次のようになります。
require(['jQuery'], function ($) {
$('.container_element').on('click', '.button_class', function () {
console.log('You have clicked button with id ', $(this).attr('id'));
})
})