我正在尝试使用javascript数组填充html select,你能帮助我让这个工作下面是我的代码
外部javascript(我在互联网上找到了这个代码)
function setRuleName()
{ var myCars=new Array("Saab","Volvo","BMW");
var sel = document.getElementById("dropping") // find the drop down
for (var i in myCars)
{ // loop through all elements
var opt = document.createElement("option"); // Create the new element
opt.value = title[i]; // set the value
opt.text = title[i]; // set the text
sel.appendChild(opt); // add it to the select
}
}
html代码
<Select onclick="setRuleName();" id="dropping" >
</Select>
答案 0 :(得分:2)
不确定title
属性的来源,但在循环数组时,请使用标准for
,而不是for in
for (var i = 0; i < myCars.length; i++) {
var opt = document.createElement("option"); // Create the new element
opt.value = myCars[i]; // set the value
opt.text = myCars[i]; // set the text
sel.appendChild(opt); // add it to the select
}
答案 1 :(得分:1)
编写此代码的其他方法。
function setRuleName(){
var myCars=["Saab","Volvo","BMW"],
sel=document.getElementById("dropping");
for(var a=0,tit;tit=myCars[a];++a){
var opt=document.createElement("option");
opt.value=opt.textContent=tit;
sel.appendChild(opt);
}
}
供内部使用(无POST)
function setRuleName(){
document.getElementById("dropping").innerHTML='<option>'+
["Saab","Volvo","BMW"].join('</option><option>')+
'</option>';
}
访问值:
console.log(document.getElementById("dropping").selected.textContent);