使用javascript数组填充html

时间:2014-02-21 16:36:03

标签: javascript html

我正在尝试使用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>

2 个答案:

答案 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);