通过Javascript循环更改DOM元素的值

通过Javascript循环更改DOM元素的值,javascript,html,Javascript,Html,下面的代码在控制台中记录一个值0到100,其间有1000ms的延迟。但它并没有按预期更新DOM元素div.innerHTML。如何通过带延迟的JS循环更改DOM元素值。看起来setTimeout在循环中不起作用 HTML文件 <div id="output"></div> <script> var obj=document.getElementById("output"); for(var i=0;i<100;i++){ obj.innerHTML

下面的代码在控制台中记录一个值0到100,其间有1000ms的延迟。但它并没有按预期更新DOM元素div.innerHTML。如何通过带延迟的JS循环更改DOM元素值。看起来setTimeout在循环中不起作用

HTML文件

<div id="output"></div>


<script>
var obj=document.getElementById("output");

for(var i=0;i<100;i++){
obj.innerHTML=i.toString();
(function(i){
    setTimeout(function(){
      console.log(i);
  }, 1000 * i)
 })(i);
}
</script>

var obj=document.getElementById(“输出”);

对于(var i=0;i您必须将
innerHtml
放入
setTimeout

var obj=document.getElementById('output');
对于(变量i=0;i<100;i++){
(职能(一){
setTimeout(函数(){
obj.innerHTML=i.toString();
},1000*i)
})(i) );
}

尝试在循环内分配给
innerHTML
,否则循环不会影响HTML。在
setTimeout
回调内,但是是的^