如何在javascript中的“function printOut(){}”中编写代码?

时间:2018-05-25 16:03:04

标签: javascript html

我需要有关如何在javascript中编写此程序的帮助。 javascript代码应该从一个框加载一个字符,从另一个框加载一个数字(N)。当您按下按钮时,N行打印每个具有N个字符的行(打印相同的字符)。在打印之前,请检查它是否仅在要输入字符的框中有一个字符。

html中的代码:

PageTwo()

Javascript中的代码:

<!DOCTYPE html>
<html>
<head>
    <title></title>
</head>
<body>
<p id="theText"></p>
<p id="theNumber"></p>
    a charachter: <input type="charachter" id="theChar">
    a number: <input type="number" id="theNbr">
    <button onclick="printOut()">print out!</button>

    <script type="text/javascript" src="script.js" ></script>
</body>
</html>

1 个答案:

答案 0 :(得分:0)

您的代码中存在多个问题,即使在您做出评论后进行了更正也是如此。一些更重要的:

  • 不要在innerHTML元素上使用input。这没有道理。要获得其价值,请使用value
  • 不要分配给document.getElementById("theNumber").innerHTML:它将替换您已有的任何HTML,因此删除 theNbr输入。任何对它的引用都将失败,从现在开始会出现错误。
  • 在读取变量之前初始化变量。 outPut永远不会被初始化,因此outPut + newText会产生不良后果。

虽然您可以使用for循环执行此操作,但JavaScript中有一个很好的字符串方法,您可以使用该方法重复一个字符甚至更长的字符串:repeat

以下是它的工作原理:

&#13;
&#13;
function printOut(){
    var theNumber = document.getElementById("theNbr").value; // Don't use innerHTML
    var theChar = document.getElementById("theChar").value;
    var oneLine = theChar.repeat(theNumber) + "<br>";
    var output = oneLine.repeat(theNumber);
    document.getElementById("theText").innerHTML = output;
}
&#13;
a charachter: <input type="charachter" id="theChar">
a number: <input type="number" id="theNbr">
<button onclick="printOut()">print out!</button>
<p id="theText"></p>
&#13;
&#13;
&#13;