たくさんの要素があり、それらすべてにクリック ハンドラーを設定し、クリックされた要素に基づいて何かを実行したいと考えています。この例では、クリックされたボタンのクラスを示すアラートを出すだけです。私の要素は次のよう<input type="button" class="numpad np-txtTP">
になります。それらはすべて同じ要素に含まれています。私の場合、後にあるものは何でも取りnp-txt
、それをテキストボックスに追加したいと思います。
2 に答える
2
document.getElementById("yourdiv").addEventListener("click",function(e) {
if(e.target && e.target.nodeName == "INPUT") {
//do something to e.target here
}
}
これはイベント委任と呼ばれ、要素の複数の子孫に対して 1 回だけハンドラーをバインドできるようにします。
于 2012-10-31T15:33:39.267 に答える
0
var container = document.getElementById('container');
var elements = container.getElementsByTagName('input');
for(i = 0; i < elements.length; i++){
elements(i).addEventListener('click', function() {
alert(this.className);
});
}
container
クラス名を警告するidの要素内のすべての入力要素にクリックハンドラーを割り当てます
これは、jQueryにアクセスできる場合は、次の方法で簡単に実行することもできます。
$(function() {
$('input[type=button]').click(function() {
alert($(this).prop('class'));
});
});
于 2012-10-31T15:48:44.863 に答える