For循环仅输出最后一次迭代

时间:2016-02-01 19:53:44

标签: javascript html loops for-loop document.write

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

HTML:

<div id="hello"</div>

JS:

var text="";

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

我的问题是这段代码只输出最后一次迭代&#39; 9&#39;而不是&#39; 0123456789&#39;这就是我想要的。

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

谢谢

2 个答案:

答案 0 :(得分:5)

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

var text="";

for (var i=0;i<10;i++) {
    text += i;
}

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

答案 1 :(得分:2)

您应该使用为变量添加值的加法赋值运算符+=,因此您在+之前错过了=

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

注意:使用textContent代替innerHTML,因为您只是附加了一个文字,请查看示例。

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