Pytanie Jak zapełnić opcje wybranego elementu w javascript


Kod:

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

Próbuję uzyskać opcje zapełnione w ten sposób, ale nie jest w porządku, ponieważ nie wiem, jak wypełnić opcje z tablicy w JS. Czy muszę użyć pętli lub czy mogę przypisać langArray do jakiejś właściwości wybranego elementu i wszystko będzie działać?


18
2017-07-06 18:13


pochodzenie




Odpowiedzi:


Możesz utworzyć opcję wewnątrz pętli;

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

31
2017-07-06 18:21



dziękuje dużo lbu ... myślę, że to jest shud newSelect.appendChild(opt) Nie myślisz? newSelect.append(opt); nie działa dla mnie !! - samach
Dziękuję za poprawienie mnie - Ibu


Musisz stworzyć swój option element wewnątrz pętli, ustaw atrybuty i tekst i dołącz do niego select element:

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

Zakłada, że ​​twój langArray wygląda mniej więcej tak:

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

Będziesz musiał dostosować kod, aby pasował do twojej tablicy


12
2017-07-06 18:21