无法使用 for 循环使用 .innerHTML “打印”

Posted

技术标签:

【中文标题】无法使用 for 循环使用 .innerHTML “打印”【英文标题】:Can't "print" with .innerHTML using a for loop 【发布时间】:2013-07-07 18:18:01 【问题描述】:

我刚开始使用 javascript,嗯,这段代码很明显,但它不起作用,我不知道为什么,因为一切看起来都很好:

<html>
<head>
</head>
<body>
<h1>This is my first Javascript test.</h1>
<p id = "y">123</p>
<button type = "button" onclick = "do()">Do it!</button>
<script>
var x = ["First Element", "Second Element", "Third Element", "Fourth Element"];
function do() 
    for (var i = 0; i < x.length; i++) 
        document.getElementById("y").innerHTML = x[i] + "<br>";
    

</script>
</body>
</html>

当我点击该死的按钮时,它就是不起作用。它没有给我那里 标签上的数组内容。

非常感谢!

【问题讨论】:

do 是 JavaScript 中的保留字。您应该为您的函数选择一个不同的名称。 jsfiddle.net/3e3CN 【参考方案1】:

我认为你想要达到的目标可以通过这个小小的改变来完成......

document.getElementById("y").innerHTML += x[i] + "<br>";

另外,将“y”存储在局部变量中而不是每次都获取它会更明智。

<script>
var y = document.getElementById("y");
var x = ["First Element", "Second Element", "Third Element", "Fourth Element"];
function do() 
    y.innerHTML = "";
    for (var i = 0; i < x.length; i++) 
        y.innerHTML += x[i] + "<br>";
    

</script>

【讨论】:

感谢您的提示(将 y 存储在局部变量中)。我更改为“+=”,但仍然无法正常工作。当我点击按钮时,y 保留其原始的“123”内容。 在开始 for 循环之前清除 innerHTML。 y.innerHTML = ""; 我会给你正确的答案,因为通过“+=”你解决了下一个我没有预见到的问题。真正解决它的是那里的疯狂火车的评论。我使用“do()”作为函数名称的事实搞砸了一切:)。非常感谢!

以上是关于无法使用 for 循环使用 .innerHTML “打印”的主要内容,如果未能解决你的问题,请参考以下文章

在 innerHTML 中使用 for 循环

JavaScript 使用 for 循环创建填充了 innerHTML 内容的 p 标记

在 Javascript 中使用 innerHTML 将 for 循环的结果写入网页

为啥 innerHTML 在 for 循环中不能正常工作?

Javascript中带有For循环的innerHTML

for 循环适用于console.log 但不是innerHTML?