我是creatind 20动态div,在页面加载时将onclick事件附加到每个div以提醒其ID,但问题是单击任何div只有最后一个div id被警告plz帮助。
例如,点击拳头div会提示最后一个div id。
在div上点击所需的结果应该提醒自己的id。
完整代码如下。
提前致谢。
<html>
<head>
<script>
function __createElement(tag, cls, id, name)
{
var ele;
ele = document.createElement(tag);
if(cls!="" && cls!=undefined)
ele.className = cls;
if(id != "" && id!=undefined)
ele.id = id;
if(name!= "" && name!=undefined)
ele.name = name;
return ele;
}
function test()
{
for(var i = 0;i<20;i++)
{
var div = __createElement("div" ,"test" ,i+"test");
document.getElementById("cont").appendChild(div);
div.innerHTML = "Content"+i;
div.onclick = function ()
{
alert(i+"test");
}
}
}
setTimeout("test()",1000);
</script>
</head>
<body>
<div id=cont >
</div>
</body>
</html>
答案 0 :(得分:2)
这个变量闭包问题改为使用它:
div.onclick = function (num)
{
return function(){
alert(num+"test");
};
}(i);
答案 1 :(得分:0)
我曾经遇到过这个问题。请记住:在i
函数的整个范围内,test()
的值现在为20。但是,每个div的innerHTML
值现在按照您的预期设置。因此,请改用innerHTML
值引用。