2

我有一堆元素,我想为所有元素设置一个点击处理程序,然后根据被点击的元素做一些事情。对于这个例子,你可以让它给出一个警告,说明被点击的按钮的类。我的元素看起来像这样:<input type="button" class="numpad np-txtTP">它们都包含在同一个元素中。在我的情况下,我想把后面的内容np-txt添加到文本框中。

4

2 回答 2

2
document.getElementById("yourdiv").addEventListener("click",function(e) {
    if(e.target && e.target.nodeName == "INPUT") {
        //do something to e.target here
    }
}

这称为事件委托,允许您为一个元素的多个后代绑定一次处理程序。

于 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);
    });
}

将为 id 元素中的所有输入元素分配一个点击处理程序,container这将提醒他们的类名


如果您可以访问它,这也可以通过以下方式在 jQuery 中轻松完成

$(function() {
    $('input[type=button]').click(function() {
        alert($(this).prop('class'));
    });
});
于 2012-10-31T15:48:44.863 回答