使用javascript填充下拉列表中的数组元素

时间:2017-03-21 15:16:33

标签: javascript html

我正在尝试使用javascript将数组元素添加到dropdownlist并引用以下链接但它不起作用:

代码:

var itemArray=new Array();
var ddlItems=document.getElementById("ddlitemslist").value;
itemArray=["a","b","c"];

for(var i=0;i<itemArray.length;i++)
{
    var opt = itemArray[i];
    var el = document.createElement("option");

    el.textContent = opt;
    el.value = opt;

    ddlItems.option.value=el; /*throws error that 'option' is not part of function*/
}

3 个答案:

答案 0 :(得分:4)

如果您将数组分配给变量,则不必使用new Array()初始化它,因为您只会覆盖它。

通过使用new Array(),您创建了一个新的空数组。 然后你基本上用不同的数组 - itemArray = ["a","b","c"]

来覆盖它

如果要将动态创建的选项推送到ddlItems元素,请使用appendChild

注意:在您的特定情况下,如果您想从DOM中捕获此select,请仅使用document.getElementById()而不使用.value,因为我们是将引用其他属性,而不是value本身。

&#13;
&#13;
var ddlItems = document.getElementById("ddlitemslist"),
    itemArray = ["a", "b", "c"];
    
    for (var i = 0; i < itemArray.length; i++) {
      var opt = itemArray[i];
      var el = document.createElement("option");
      el.textContent = opt;
      el.value = opt;
      ddlItems.appendChild(el);
    }
&#13;
<select id='ddlitemslist'></select>
&#13;
&#13;
&#13;

答案 1 :(得分:1)

  

抛出'选项'不属于函数

的错误

您自己解释的错误,您尝试在.option.value值上调用ddlitemslist而不是在对象上调用。

您不应该在value变量的初始化中返回ddlItems,而是返回对象,例如:

var ddlItems=document.getElementById("ddlitemslist").value;

应该是:

var ddlItems=document.getElementById("ddlitemslist");

注意:无需var itemArray=new Array();

希望这有帮助。

var itemArray=new Array(); //You could remove this line
var ddlItems = document.getElementById("ddlitemslist"),
itemArray = ["a", "b", "c"];

for (var i = 0; i < itemArray.length; i++) {
  var opt = itemArray[i];
  var el = document.createElement("option");

  el.textContent = opt;
  el.value = opt;

  ddlItems.appendChild(el);
}
<select id='ddlitemslist'></select>

答案 2 :(得分:1)

您必须选择select元素,然后在迭代数组时创建option元素作为select元素的子元素。

您需要替换

var ddlItems=document.getElementById("ddlitemslist").value;

var ddlItems=document.getElementById("ddlitemslist");