如何在Javascript中使用循环生成事件处理程序?例如,我有10个从Ajax响应生成的标记:<a href="#" id="b1">b1</a><a href="#" id="b2">b2</a><a href="#" id="b3">b3</a><a href="#" id="b4">b4</a><a href="#" id="b5">b5</a>
<a href="#" id="b6">b6</a><a href="#" id="b7">b7</a><a href="#" id="b8">b8</a><a href="#" id="b9">b9</a><a href="#" id="b10">b10</a>我需要通过循环将onClick事件分配给他们中的每一个:for(i=1; i<11; i++) {
document.getElementById("b"+i).onclick=function() {
alert(i);
}}这不起作用,它只分配给最后一个标签和警告“11”。我怎么才能让这个起作用?我宁愿不使用jQuery。
3 回答
白板的微信
TA贡献1883条经验 获得超3个赞
for(i=1; i<11; i++) {
(function(i) {
document.getElementById("b"+i).onclick=function() {
alert(i);
};
})(i);}
红颜莎娜
TA贡献1842条经验 获得超13个赞
for(i=1; i<11; i++) {
(function(num) {
document.getElementById("b"+num).addEventListener('click', function() {
alert(num);
});
})(i);}for (i=1; i<11; i++) {
document.getElementById("b"+i).addEventListener('click', (function(){
var num = i;
return function() {
alert(num);
}
})());}添加回答
举报
0/150
提交
取消
