2011-07-06 23 views
17

kodu seçkin elemanın seçenekleri doldurmak için: Bu arada nüfuslu seçenekleri almaya çalışıyorum ama onun ben doldurmak nasıl bilmiyorum doğru gibi tüm gelmiyorjavascript

var newSelect=document.createElement('select'); 
index=0; 
var optn = document.createElement("option"); 

//langArray is an array that contains different items..the size 
//is not fixed for this array. 

for(element in langArray) 
{ 
    //Now i want to assign each item in langArray to each option tag 
    //will it be sumthng like "optn.options[index]=new Option("Sports", "sportsvalue", true, false); 
    //optn.accept(langArray[0]); 
    index++; 
} 

JS'deki bir diziden seçenekler. Döngüyü kullanmak zorunda mıyım yoksa langArray öğesini belirli bir elemanın bazı özelliklerine atayabilir miyim ve her şey çalışır durumda mı?

cevap

27

Döngü içinde seçeneği oluşturabilirsiniz;

for(element in langArray) 
{ 
    var opt = document.createElement("option"); 
    opt.value= index; 
    opt.innerHTML = element; // whatever property it has 

    // then append it to the select element 
    newSelect.appendChild(opt); 
    index++; 
} 

// then append the select to an element in the dom 
+1

Teşekkür ederim lbu ... sanırım shud 'newSelect.appendChild (opt) 'd düşünmüyor musunuz? 'newSelect.append (opt);' 'benim için çalışma değildi! – samach

+0

Düzeltme için teşekkürler – Ibu

11

Sen, döngü içine sizin option elemanı oluşturmak için gereken nitelikleri ve metin ayarlamak ve select elemana ekler:

var langArray = [ 
    {value: "val1", text: "text 1"}, 
    {value: "val2", text: "text 2"} 
]; 
:

var select = document.createElement('select'), 
    option, 
    i = 0, 
    il = langArray.length; 

for (; i < il; i += 1) { 
    option = document.createElement('option'); 
    option.setAttribute('value', langArray[i].value); 
    option.appendChild(document.createTextNode(langArray[i].text)); 
    select.appendChild(option); 
} 

Bu langArray şuna benzer olduğunu varsayar

Dizininizle eşleşecek kodu değiştirmeniz gerekir