Javascript 根据用户输入为循环打印输出

Javascript 根据用户输入为循环打印输出,javascript,html,for-loop,Javascript,Html,For Loop,我在页面上显示for循环时遇到问题。有一个按钮,点击后提示用户输入一个数字,然后通过for循环显示该数字的迭代次数。我已经研究过类似的问题,在这里被问到,但似乎仍然遇到了问题 <!doctype hmtl> <html> <head></head> <button onclick="getNumber()">Click!</button> <p id="demo"></p> <scrip

我在页面上显示for循环时遇到问题。有一个按钮,点击后提示用户输入一个数字,然后通过for循环显示该数字的迭代次数。我已经研究过类似的问题,在这里被问到,但似乎仍然遇到了问题

<!doctype hmtl>  
<html>
<head></head>

<button onclick="getNumber()">Click!</button>
<p id="demo"></p>

<script>
function getNumber() {
    var i;
    var num;
    var n = prompt("Please enter a number");
    for(i = 0; i < n.length; i++){
        num += n[i];

        document.getElementById("demo").innerHTML += num + " ";  
    }
}
</script>
</body>
</html>

点击

函数getNumber(){ var i; var-num; var n=提示(“请输入一个数字”); 对于(i=0;i
它应该是
i
而不是
i
。因为您所做的是循环次数与变量
n
中的字符数相同(顺便说一下,这是一个字符串)。因此,如果用户键入
9
,则只打印一个数字,因为
“9”。长度
为1,并且在0和1之间只有一次迭代(排除)。试试这个:

function getNumber() {
    var num = 0; // this should be initialized
    var n = prompt("Please enter a number");
    for(var i = 0; i < n; i++){
        num += i; // add i
        document.getElementById("demo").innerHTML += num + " ";
    }
}
函数getNumber(){
var num=0;//这应该初始化
var n=提示(“请输入一个数字”);
对于(变量i=0;i
它应该是
i
而不是
i
。因为您所做的是循环次数与变量
n
中的字符数相同(顺便说一下,这是一个字符串)。因此,如果用户键入
9
,则只打印一个数字,因为
“9”。长度
为1,并且在0和1之间只有一次迭代(排除)。试试这个:

function getNumber() {
    var num = 0; // this should be initialized
    var n = prompt("Please enter a number");
    for(var i = 0; i < n; i++){
        num += i; // add i
        document.getElementById("demo").innerHTML += num + " ";
    }
}
函数getNumber(){
var num=0;//这应该初始化
var n=提示(“请输入一个数字”);
对于(变量i=0;i
不确定您到底在尝试什么,但如果您想重复for循环直到用户输入输入,您可以按如下操作

检查此代码段

函数getNumber(){
var i;
var-num;
var n=提示(“请输入一个数字”);
对于(i=0;i
点击!

不确定您到底在尝试什么,但是如果您想重复for循环直到用户输入输入,您可以按如下操作

检查此代码段

函数getNumber(){
var i;
var-num;
var n=提示(“请输入一个数字”);
对于(i=0;i
点击!

您试图获取用户输入值的
length
属性,而不是直接获取值

此外,代码中存在一些不必要的位,以及一些对性能产生不利影响的不良做法

//获取对以下HTML(DOM-文档对象模型)元素的引用:
//您将需要在此范围级别访问
var btn=document.getElementById(“btn”);
//不要在HTML中设置事件处理代码(也称为内联事件处理),因为它
//使HTML更难阅读(一行上有两种语言),但它不遵循
//事件处理的标准,它产生匿名全局JavaScript函数
//作为HTML属性值的包装。相反,用JavaScript来实现
//像这样:
btn.addEventListener(“单击”,获取编号);
函数getNumber(){
//只需扫描元素一次,而不是每次循环迭代
var el=document.getElementById(“演示”);
//获取用户的输入并将其转换为数字
var n=parseInt(提示(“请输入数字”),10);
//设置将成为输出的字符串。
var输出=”;
对于(var i=0;i
点击!

您试图获取用户输入值的
length
属性,而不是直接获取值

此外,代码中存在一些不必要的位,以及一些对性能产生不利影响的不良做法

//获取对以下HTML(DOM-文档对象模型)元素的引用:
//您将需要在此范围级别访问
var btn=document.getElementById(“btn”);
//不要在HTML中设置事件处理代码(也称为内联事件处理),因为它
//使HTML更难阅读(一行上有两种语言),但它不遵循
//事件处理的标准,它产生匿名全局JavaScript函数
//作为HTML属性值的包装。相反,用JavaScript来实现
//像这样:
btn.addEventListener(“单击”,获取编号);
函数getNumber(){
//只需扫描元素一次,而不是每次循环迭代
var el=document.getElementById(“演示”);
//获取用户的输入并将其转换为数字
var n=parseInt(提示(“请输入数字”),10);
//设置将成为输出的字符串。
var输出=”;
对于(var i=0;i