【问题标题】:Can't "print" with .innerHTML using a for loop无法使用 for 循环使用 .innerHTML “打印”
【发布时间】: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

标签: javascript html loops innerhtml


【解决方案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()”作为函数名称的事实搞砸了一切:)。非常感谢!
猜你喜欢
  • 1970-01-01
  • 2015-06-27
  • 2013-02-20
  • 2012-04-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-12-23
相关资源
最近更新 更多