我用如下代码可以实现循环动态创建div了,但是动态创建的事件有问题,
执行如下的代码产生的事件显示的总是最后一个创建div的id
不知错误在哪里?<HTML>
<HEAD>
<TITLE> 动态创建div和事件 </TITLE>
    <style type="text/css">
      .mydiv
      {
       width : 300px ;
       height:300px;
       background-color :#00ff00 ;
      }
    </style>
</HEAD>
<script> 
  function crdiv() //动态创建div和事件
  {   
   var i,j;
   var fo = document.getElementById('fdiv'); 
   for (i=0;i<3;i++)
   {
     for (j = 0;j<3;j++)
     {
       var l = i * 300;
       var t = j * 300;
       var o = document.createElement("div");
       var id = "div" + i + j;
       o.id =  id;
       o.className = "mydiv";
       o.style.left = l + "px";
       o.style.top = t + "px";
       o.style.position  = "absolute";   
       o.innerText = id;
//       if ((i ==0)&(j==0))
//       {
       o.onclick= function(){showid(id)}; //创建后执行总是显示最后一个id号  
//       o.attachEvent("onclick",function(){showid(id)});  
//       o.addEventListener("click",function(){showid(id)},false); 
//       }     
       fo.appendChild(o);
     }
   }
  }
  function showid(os)
  {
    var o = document.getElementById(os);
    alert(o.id);
  }
</script> 
<BODY>
 <input id="Button1" type="button" value="button" onclick = "crdiv()" />
 <div id="fdiv" style="width: 223px; height: 177px">
 </div>
</BODY>
</HTML>