Справка JavaScript обязательна для получения динамических значений из onclick - PullRequest
0 голосов
/ 16 декабря 2010

Я создаю динамический div 20, при загрузке страницы добавляю событие onclick к каждому div, чтобы предупредить его id, но проблема заключается в нажатии на любой div, только последний id div оповещен plz help.

Например, при нажатии накулак div оповещает последний идентификатор div.

Требуемый результат - щелчок по элементу div должен предупредить его собственный идентификатор.

Полный код указан ниже.

Заранее спасибо.

 <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 ]

2 голосов
/ 16 декабря 2010

это проблема закрытия переменной, используйте вместо этого:

  div.onclick = function (num)
  {
   return function(){
       alert(num+"test");
   };
  }(i);
0 голосов
/ 16 декабря 2010

Я однажды сталкивался с этой проблемой.Просто помните: значение i теперь равно 20 во всей области действия функции test().Но значение innerHTML каждого div теперь установлено так, как вы ожидаете.Поэтому используйте вместо этого innerHTML значение ссылки.

...