为了账号安全,请及时绑定邮箱和手机立即绑定

闭包,立即执行,循环添加,,,求救啊!!!

闭包,立即执行,循环添加,,,求救啊!!!

慕粉1469491289 2016-11-07 17:54:46
<!DOCTYPE html><html><head> <title></title></head><body><div id="div1"></div><script type="text/javascript"> var a=document.getElementById('div1'); var x=document.createElement('p'); var arr=[1,2,2,3,5,8]; for (var i = 0; i < arr.length; i++) { alert(i); (function(i){ x.innerHTML=arr[i]; a.appendChild(x); return i; } (i)) }</script></body></html>为什么为什么为什么,总是只有组后一个,,求通俗易懂的讲解和方案,我田间事件也是只有最后一个,卡在这里了,好恼火
查看完整描述

2 回答

已采纳
?
qq_青枣工作室_0

TA贡献446条经验 获得超754个赞

因为你只createElement一次,所以,每次appendChild时只有一个。

改为每次都 createElement就行了。

var a=document.getElementById('div1');
var arr=[1,2,2,3,5,8];
for (var i = 0; i < arr.length; i++) {
(function(i){
var x=document.createElement('p');
x.innerHTML=arr[i];
a.appendChild(x);
}
(i))
}


查看完整回答
2 反对 回复 2016-11-07
?
qq_呆瓜_fkoIZ8

TA贡献12条经验 获得超5个赞

<script type="text/javascript">
	var a=document.getElementById('div1');
	var arr=[1,2,2,3,5,8];
	for (var i = 0; i < arr.length; i++) {
		alert(i);
		(function(i){
			var x=document.createElement('p');
			x.innerHTML=arr[i];
			a.appendChild(x);
			return i;
		}(i))
	}
</script>

要把createElement放在循环内,这样每次循环就能相应的createElement一个p

查看完整回答
1 反对 回复 2016-11-17
  • 2 回答
  • 0 关注
  • 1158 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信