我想通过接受用户输入通过 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 输入查询字符串不接受空格制表符而是字母