javascript动态生成的带有onclick事件的表无法正常工作
我有一个动态生成的表,除了onclick事件之外,它工作得很好。我把结果放在一个警报中,这样你就可以看到了。我希望它在每次迭代时都能显示var I的正确值,但每次迭代都会显示相同的值3,而不是我所期望的0、1、2。我是做错了什么,还是有更好的方法来实现onclick事件 注意:请不要jqueryjavascript动态生成的带有onclick事件的表无法正常工作,javascript,Javascript,我有一个动态生成的表,除了onclick事件之外,它工作得很好。我把结果放在一个警报中,这样你就可以看到了。我希望它在每次迭代时都能显示var I的正确值,但每次迭代都会显示相同的值3,而不是我所期望的0、1、2。我是做错了什么,还是有更好的方法来实现onclick事件 注意:请不要jquery <html> <head></head> <script> function test(x){ alert(x); } </script&g
<html>
<head></head>
<script>
function test(x){
alert(x);
}
</script>
<body>
<div id="main">
</div>
<script>
var backupData = [];
//SAMPLE DATA
backupData.push(['dan','martin']);
backupData.push(['nancy','smith']);
backupData.push(['mary','fisher']);
tbl = document.createElement('table');
for(var i = 0; i < backupData.length; i++){
var tr = tbl.insertRow();
tr.onclick = function(){test(i)};
var td = tr.insertCell();
td.appendChild(document.createTextNode(backupData[i][0]));
var td2 = tr.insertCell();
td2.appendChild(document.createTextNode(backupData[i][1]));
}
main.appendChild(tbl);
</script>
</body>
</html>
功能测试(x){
警报(x);
}
var backupdatea=[];
//样本数据
backupdatea.push(['dan','martin']);
backupdatea.push(['nancy','smith']);
backupdatea.push(['mary','fisher']);
tbl=document.createElement('table');
对于(var i=0;i
经典的闭包问题
解决方案1:
for(var i = 0; i < backupData.length; i++){
var tr = tbl.insertRow();
tr.onclick = (function(value){
//captures local value of i as value parameter
return function(){
test(value)
}
})(i);
经典闭包问题 解决方案1:
for(var i = 0; i < backupData.length; i++){
var tr = tbl.insertRow();
tr.onclick = (function(value){
//captures local value of i as value parameter
return function(){
test(value)
}
})(i);
经典闭包问题 解决方案1:
for(var i = 0; i < backupData.length; i++){
var tr = tbl.insertRow();
tr.onclick = (function(value){
//captures local value of i as value parameter
return function(){
test(value)
}
})(i);
经典闭包问题 解决方案1:
for(var i = 0; i < backupData.length; i++){
var tr = tbl.insertRow();
tr.onclick = (function(value){
//captures local value of i as value parameter
return function(){
test(value)
}
})(i);
id=main应该是id=“main”。我添加了引号,但是仍然相同的issuehow come
id=main
在main
上没有引号?id=main应该是id=“main”。我添加了引号,但是仍然相同的issuehow comeid=main
在main上没有引号。我添加了引号,但是仍然相同的问题How comeid=main
在main
上没有引号?id=main应该是id=“main”。我添加了引号,但是仍然相同的问题How comeid=main
在main
上没有引号?尝试了解决方案1,效果很好。谢谢。尝试了解决方案1,效果很好。谢谢。尝试了解决方案1,效果很好。谢谢。尝试了解决方案1,效果很好。非常感谢。