var elems = document.getElementsByClassName('delButton');
for(i=0; i<elems.length; i++){
var attr = elems[i].getAttribute('data-rowid');
elems[i].addEventListener('click',function(){
console.log(attr);
});
}
当我单击任何按钮时,仅在控制台上输出最后一个元素(delButton)的data-rowid
属性的值。如何打印与每个按钮关联的data-rowid
值?
答案 0 :(得分:4)
试试这个
var elems = document.getElementsByClassName('delButton');
for(i=0; i<elems.length; i++){
elems[i].addEventListener('click',function(){
console.log(this.getAttribute('data-rowid'));
});
}
你没有得到预期的结果,因为闭包的范围是只评估最后一个attr。
在提议的解决方案中,您将从接收事件的元素中提取attr