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

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

为什么为什么为什么,总是只有组后一个,,求通俗易懂的讲解和方案,我田间事件也是只有最后一个,卡在这里了,好恼火

慕粉1469491289
浏览 1149回答 2
2回答

qq_青枣工作室_0

因为你只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)) }

qq_呆瓜_fkoIZ8

<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
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript