这是一个基本的循环问题。如果我有一个简单的for循环,例如:
function printMe()
{
for(var i = 0; i < 5; i++)
{
document.getElementById("text").innerHTML = i;
}
};
printMe();
当我调用该函数时,它只打印循环5中的最后一个数字。但是,如何让它在循环迭代中打印,以便最终列表为0,1,2,3,4,5 < / p>
答案 0 :(得分:1)
由于您使用的是innerHTML
,因此您不断覆盖innerHTML = i
的值。这意味着当循环完成运行时,该值将是i
的最后一个值。
您希望使用+=
将i
附加到现有值,并且您可能希望在此之后添加空格,以便它们不会粘在一起。
document.getElementById("text").innerHTML += i + " ";
这是
的简写符号 document.getElementById("text").innerHTML = document.getElementById("text").innerHTML + i + " ";
因此:获取旧值,添加新值,再次将其存储在innerHTML
中。
答案 1 :(得分:0)
问题是你将i
分配到innerHTML
每个循环(不附加+=
),所以预期的行为是唯一的最后一个输出
尝试以下将是正常的
function printMe()
{
for(var i = 0; i < 5; i++)
{
var innerHTML = document.getElementById("text").innerHTML;
document.getElementById("text").innerHTML += (innerHTML.length <= 0 ? "" : ", ") + i;
}
};
printMe();
如果您还要打印5
,还必须将for循环更改为for (var i = 0; i < 6; i++)
或for (var i = 0; i <= 5; i++)