Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/415.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript I';我想加上一句;职系;对于数组,它不是';I don’我没有按计划进行_Javascript_Arrays_User Input - Fatal编程技术网

Javascript I';我想加上一句;职系;对于数组,它不是';I don’我没有按计划进行

Javascript I';我想加上一句;职系;对于数组,它不是';I don’我没有按计划进行,javascript,arrays,user-input,Javascript,Arrays,User Input,这样做的想法是输入一个“等级”或一般数字,检查以确保它是一个数字,将其添加到等级数组中,然后为每个添加的数字创建一个包含输入的数字的列表项 我有两个功能。第一个名为check()的函数将输入值分配给userInput变量,然后检查该变量是否为数字。如果是,则调用adTo()函数,该函数将userInput变量推入grade[]数组,然后更新列表。然而,事实并非如此。这是我的密码: <!DOCTYPE html> <html lang="en"> <head>

这样做的想法是输入一个“等级”或一般数字,检查以确保它是一个数字,将其添加到等级数组中,然后为每个添加的数字创建一个包含输入的数字的列表项

我有两个功能。第一个名为check()的函数将输入值分配给userInput变量,然后检查该变量是否为数字。如果是,则调用adTo()函数,该函数将userInput变量推入grade[]数组,然后更新列表。然而,事实并非如此。这是我的密码:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <Title>Ultimate Grader</title>

    <style>

    </style>
    <script>


        function check(){
            var userInput = document.getElementById('grade').value;

            if ( isNaN(userInput) || userInput === " ") {
                alert("please enter a Number");
            }else {
                adTo(userInput);
            };
        }


        function adTo(input) {
            var grade = [];

            grade.push(input);

            for (i=0; i<=grade.length; i++){
                document.getElementById("list").innerHTML = "<li><input type='number' value='" + grade[i] + "'/></li>";
            };

            };

    </script>
</head>

<body>

    <form>
    <input type="text" id="grade" name="grade" placeholder="Grade">
    <input type="button" id="add" name="add" value="Add" onclick="check()">
    </form>
    <ul id="list">
    </ul>

</body>
</html>

终极平地机
函数检查(){
var userInput=document.getElementById('grade')。值;
如果(isNaN(用户输入)| |用户输入==“”){
警报(“请输入一个数字”);
}否则{
adTo(用户输入);
};
}
功能adTo(输入){
var等级=[];
等级。推送(输入);

对于(i=0;i每次调用
adTo()
,您都在创建一个新的空数组。您需要在函数外部定义变量,以便在调用之间保留其值

此外,您的
for()
循环每次通过循环时都会替换
innerHTML
,而不是附加到它。请使用
+=
进行附加

var grade = [];
function adTo(input) {
    grade.push(input);
    var list = document.getElementById('list');
    list.innerHTML = ''; // Empty it
    for (var i = 0; i < grade.length; i++) {
        list.innerHTML += "<li><input type='number' value='" + grade[i] + "'/></li>";
    }
}
var等级=[];
功能adTo(输入){
等级。推送(输入);
var list=document.getElementById('list');
list.innerHTML='';//将其清空
对于(变量i=0;i”;
}
}

不过,实际上不太需要该循环。由于列表中应该已经包含以前调用中的项,因此您真正需要做的就是附加新项:

function adTo(input) {
    grade.push(input);
    document.getElementById('list').innerHTML += "<li><input type='number' value='" + input + "'/></li>";
}
功能adTo(输入){
等级。推送(输入);
document.getElementById('list').innerHTML+=“
  • ”; }

    感谢您修复了它,但是现在当我单击激活该功能时,它会将数组中的每个项目都添加到列表中,第一个项目是“未定义的”。因此,它首先是“未定义的”,然后是“未定义的”未定义的“90”,然后是“未定义的”“未定义的”“90”“未定义的”“未定义的”“90”“81“,等等。你有什么建议吗?我在上一个版本中犯了一个错误,它应该将
    输入
    放到HTML中,而不是
    评分[I]
    。这就是导致问题的原因吗?谢谢你,巴尔马。我删除了我的作业中的for循环,列出了内部HTML并更改了评分[I]现在可以完美地输入。请放回原始代码。没有它,我的答案就没有意义。如果你想显示新代码,请将其添加为更新。