从onclick获取动态值所需的JavaScript帮助

时间:2010-12-16 05:37:56

标签: javascript dynamic onclick

我是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>

2 个答案:

答案 0 :(得分:2)

这个变量闭包问题改为使用它:

  div.onclick = function (num)
  {
   return function(){
       alert(num+"test");
   };
  }(i);

答案 1 :(得分:0)

我曾经遇到过这个问题。请记住:在i函数的整个范围内,test()的值现在为20。但是,每个div的innerHTML值现在按照您的预期设置。因此,请改用innerHTML值引用。