我正在尝试使用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*/
}
答案 0 :(得分:4)
如果您将数组分配给变量,则不必使用new Array()
初始化它,因为您只会覆盖它。
通过使用new Array()
,您创建了一个新的空数组。
然后你基本上用不同的数组 - itemArray = ["a","b","c"]
如果要将动态创建的选项推送到ddlItems
元素,请使用appendChild
。
注意:在您的特定情况下,如果您想从DOM中捕获此select
,请仅使用document.getElementById()
而不使用.value
,因为我们是将引用其他属性,而不是value
本身。
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;
答案 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");