“写入” 实例:*下面两段代码,随便打开一个网页,F12在console中运行* 看效果
var eles=document.getElementsByTagName("A")
for (var i=0;i<eles.length;i++){
var el=eles[i]
setTimeout(function(){el.textContent=i},1000) //异步
}
结果:只修改了最后一个A元素;因为:el将会永远指向最后一个A
使用闭包解决:
var eles=document.getElementsByTagName("A")
for (var i=0;i<eles.length;i++){
var el=eles[i]
setTimeout(
(function(e,n){
var el=e,N=n //保存现场
return function(){el.textContent=N}
})(el,i)
,1000) //异步
}