2014-02-21 179 views
1

我试图填充HTML与JavaScript数组选择,你们可以帮我做这个工作,下面是我的代码填充HTML与JavaScript数组

外部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> 
+3

应'myCars [I]'不'标题[I]' – ashley

+0

已经尝试将其更改为myCars ash仍然不工作 – user3287181

+0

您不应该调用'onclick'函数,或者每次单击时都会附加'option's。 – Skwal

回答

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 
} 
+0

是的,承认它的标题是错误的,但兄弟它仍然没有工作,只是为了添加我有两个外部脚本不会使问题谢谢 – user3287181

+0

控制台中的任何错误? – tymeJV

+0

在控制台中没有错误和奇怪的是,我删除了它所在的外部文件,我将其他外部脚本中的代码转移了出来,现在所有的脚本都不起作用。 – user3287181

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); 
} 

} 

供内部使用(NO POST)

function setRuleName(){ 
document.getElementById("dropping").innerHTML='<option>'+ 
["Saab","Volvo","BMW"].join('</option><option>')+ 
'</option>'; 
} 

访问值:

console.log(document.getElementById("dropping").selected.textContent);