For 循环仅输出上次迭代

For loop only outputs last iteration

本文关键字:迭代 输出 循环 For      更新时间:2023-09-26

我是Javascript的新手,只是在尝试将一个简单的for循环打印到HTML中。

.HTML:

<div id="hello"</div>

.JS:

var text="";
for (var i=0;i<10;i++) {
    document.getElementById("hello").innerHTML=text+i;
}

我的问题是这段代码只输出最后一次迭代"9",而不是我想要的"0123456789"。

现在,如果我这样做document.write它会很好地打印出数字,但我听说这是不好的做法,所以我只想以正确的方式进行操作。

谢谢

最好先构建文本内容并将其插入HTML元素一次(以节省一些时间):

var text="";
for (var i=0;i<10;i++) {
    text += i;
}
document.getElementById("hello").innerHTML = text;

您应该使用向变量添加值的加法赋值运算符+=,因此您只是在=之前缺少+

document.getElementById("hello").innerHTML += text+i;

注意:使用textContent而不是innerHTML,因为您只附加了一个文本,请检查下面的示例。


var text="";
for (var i=0;i<10;i++) {
    document.getElementById("hello").textContent += text+i;
}
<div id="hello"></div>