如何在Javascript中获取用户输入并添加到数组?

时间:2018-03-15 13:09:41

标签: javascript arrays input

我有一个尝试开发的页面,它将接受用户输入,然后将其添加到数组中,然后获取该数组,并从中生成一个选择和选项列表。

<!DOCTYPE>
<html>
<head>
<script>
 var option_list = [];
   // for loop at thats option_list to select select tag
 for (var i = 0; i < option_list.length; i++){
  var opt = option_list[i];
  var option = document.createElement("option");
  var select = document.getElementById("select");     
  option.setAttribute("id", opt); //Adding ID to the option list
  option.setAttribute("class", "intersect-option"); // adds classes to option
  option.value(opt); // adds value to option list 
  select.appendChild(option); // Adds option to the list.

} 
function add_option(name){
var name = document.getElementById("name").value;
name.push(option_list());
}
</script>
</head>
<body>
 <input type="text" id="name" value="">
 <input type="button" onclick="add_option()" value="add person">
 <select id="select">
</select>

</body>
</html>

我遇到的问题是它说当我尝试输入我得到的信息时

  

未捕获的TypeError:option_list不是函数

     

在add_option(selectTest.html:19)

     

在HTMLInputElement.onclick(selectTest.html:25)

我不确定我做错了什么,非常感谢任何帮助。

4 个答案:

答案 0 :(得分:0)

您应该将name推送到option_list数组中。正确的语法是option_list.push(name);

function add_option(){
    var name = document.getElementById("name").value;
    option_list.push(name);
}

答案 1 :(得分:0)

将元素推入数组的方式是另一种方式:

option_list.push(name);

http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/push

答案 2 :(得分:0)

name.push(option_list());

正如它所说,option_list不是函数,并且标识符后面的平衡括号指定C系列语言中的函数调用,因此option_list()不是有效的表达式。

另外,你真的打算从零循环到一个空数组的长度(同样为零)吗?

答案 3 :(得分:0)

    <!DOCTYPE>
    <html>
    <head>

    </head>
    <body>
     <input type="text" id="name" value="">
     <input type="button" onclick="add_option()" value="add person">
     <select id="select">
    </select>
    <script>
     var option_list = [];
       // for loop at thats option_list to select select tag

     
      var select = document.getElementById("select");     

    function add_option(name){
    var name = document.getElementById("name").value;
     var option = document.createElement("option");
      var label = document.createTextNode(name);
      option.setAttribute("id", name); //Adding ID to the option list
      option.setAttribute("class", "intersect-option"); // adds classes to option
      option.value = name; // adds value to option list 
      
      option.appendChild(label);
      select.appendChild(option); // Adds option to the list.
    }



    </script>
    </body>
    </html>