4

这是我的编码。在这个编码中,我想在innerHTML中打印表格

段落标签。这是有效的,但问题是当我单击提交按钮时,此结果仅显示最后一个值,例如“10 * 10 = 100”,但我想运行我在代码中从 1 到 10 定义的完整循环。请解决这个问题问题。

<html>
<head>
<title>Table Program</title>
</head>
<body>
<input type="text" id="table" placeholder="Enter table"/>
<input type="button" value="Submit" onClick="table()"/>
<p id="demo"></p>
<!----------------------------------------------------------------------------------------------->
<script type="text/javascript">
function table()
{
    var value = document.getElementById("table").value;
    var demop = document.getElementById("demo");
    var a;
    for(a=1; a <= 10;++a)
    {
        demop.innerHTML=(value+"*"+ a +"="+ value*a);
    }
    }
</script>
</body>
</html>
4

2 回答 2

12

您的循环在每次执行时都会for覆盖innerHTML 。demop因此,当您的for循环到达最后一次迭代a时,将是 10,因此您只会得到最后一个值“10*10=100”

因此,每次迭代 for 循环时都应该附加结果,就像这样

demop.innerHTML += (value + "*" + a + "=" + (value*a) + "<br />");

因此,您将在单独的行上获得输出。

于 2012-10-21T10:06:39.130 回答
1

当你打电话时,demop.innerHTML = something你每次都覆盖它。您应该:

  • 将整个字符串放在一个临时result变量中,然后将其提供给innerHTML
  • 通过做连接不同的结果

    demop.innerHTML = demop.innerHTML + (value+"*"+ a +"="+ value*a);

于 2012-10-21T09:56:42.137 回答