2017-08-23 116 views
0

当我尝试动态地使用HTML元素填充包装元素,然后为该元素添加EventListener时,它只使用最后一个值。动态添加EventListener不能按预期工作

window.onload=function(){ 
 
\t sW=""; 
 
\t for(var i = 0; i < 5; i++) { 
 
\t \t var e = document.createElement('div'); 
 
\t \t e.innerHTML = "test div number "+i; 
 
\t \t e.addEventListener('click', function() {alert("t:"+i);}); 
 
\t \t document.getElementById('wrap').appendChild(e); 
 
\t \t } \t 
 
\t }
<html> 
 
<body> 
 
<div id="wrap"></div> 
 
</body> 
 
</html>

回答

0

这是因为var保持的参考变量。改为使用let

+0

完美。这样可行!! –