这是循环代码 "<td><button>更新</button><button class='deleteInfo"+i+"' value='"+json[i].student.id+"'>删除</button></td></tr>";
这是循环添加点击的事件代码:
$(document).ready(function(){ //删除人员信息 for (var i = 0; i <5 ; i++) { $(document).on('click','.deleteInfo'+i,function(){ alert($(".deleteInfo"+i).val()); }); } });
最终无论点击哪个按钮都是打印最后的值,求解
改let ,var的话涉及到闭包,引用i的最后值。而且也不需要用到i,函数体中this为当前点击的button for (let i = 0; i <5 ; i++) { $(document).on('click','.deleteInfo'+i,function(){ alert($(".deleteInfo"+i).val()); aerlt(this.value)/// }); }
因为事件监听是异步所以要用let 看看这个https://zhuanlan.zhihu.com/p/51966830