我想通过接受用户输入通过 JavaScript 在我的 DOM 中打印一个 Rectangle,但是当我运行此代码时,我得到 'str' 未定义

Posted

技术标签:

【中文标题】我想通过接受用户输入通过 JavaScript 在我的 DOM 中打印一个 Rectangle,但是当我运行此代码时,我得到 \'str\' 未定义【英文标题】:I want to print a Rectangle in my DOM by JavaScript by taking a user input, but when I run this code I got 'str' is not defined我想通过接受用户输入通过 JavaScript 在我的 DOM 中打印一个 Rectangle,但是当我运行此代码时,我得到 'str' 未定义 【发布时间】:2022-01-07 00:06:06 【问题描述】:

每当有人单击“尝试”按钮时,我想创建一个矩形,我会询问用户的行数,它会打印相同的行和列以形成一个矩形。但是当我运行这段代码时,我的 DOM 上什么也得不到,它在控制台中说 str 没有在第 27 行定义,但我已经定义了它,不知道问题出在哪里

<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Document</title>
  </head>
  <body>
    <div class="container">
      <p>Click the button to demonstrate the prompt box.</p>

      <button onclick="myFunction()">Try it</button>

      <p id="demo"></p>

      <script>
        const myFunction = () => 
          let insertLine = prompt("put the no. of lines Here: ");
          let str = "";
          for (i = 0; i < insertLine; i++)
            for (j = 0; j < i; j++) 
              str += "*";
            
          str += "\n";
        ;
        console.log(str);
        document.getElementById("demo").innerHTML = str;
      </script>
    </div>
  </body>
</html>

【问题讨论】:

您在 myFunction 内部定义了 str,但您尝试在外部使用它。 console.log 和 innerHTML 赋值应该在函数中,而不是在函数之外。 【参考方案1】:

您尝试在其定义范围之外使用“str”变量:

您在MyFunction 中定义了str,但是当您尝试记录它时却在外部使用它。

【讨论】:

【参考方案2】:

我不确定我是否理解您的问题,但 console.log() 和 document.getElementById() 应该在您的函数中。您的 for 循环还需要更改以打印完整的矩形。试试这个代码,让我知道它是否有效。

    const myFunction = () => 
      let insertLine = prompt("put the no. of lines Here: ");
      let str = "";
      for (i = 0; i < insertLine; i++) 
        for (j = 0; j < insertLine; j++) 
          str += "*";
        
        str += "<br/>";
        
      
      console.log(str);
      document.getElementById("demo").innerHTML = str;
    ;

【讨论】:

以上是关于我想通过接受用户输入通过 JavaScript 在我的 DOM 中打印一个 Rectangle,但是当我运行此代码时,我得到 'str' 未定义的主要内容,如果未能解决你的问题,请参考以下文章

JavaScript 输入查询字符串不接受空格制表符而是字母

一个通过值选择器接受特定值的文本框

使用在 UITextField 中输入的值 [重复]

javascript/jquery 输入验证

Javascript - 通过用户输入使用排序按钮创建的列表

XML 通过属性值 JavaScript 删除节点