2014-02-21 219 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);