Как заполнить параметры выбранного элемента в JavaScript - PullRequest
27 голосов
/ 06 июля 2011

код:

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. Мне даже нужно использовать цикл или я могу просто назначить langArray какому-либо свойству элемента select, и все будет работать?

Ответы [ 4 ]

40 голосов
/ 06 июля 2011

Вы можете создать опцию внутри цикла;

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
14 голосов
/ 06 июля 2011

Вам необходимо создать элемент option внутри цикла, задать атрибуты и текст и добавить его к элементу select:

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

Предполагается, что ваш langArray выглядит примерно так:

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

Вам нужно настроить код, чтобы он соответствовал вашему массиву

3 голосов
/ 25 февраля 2019
    var dynamicSelect = document.getElementById("selectID");

        langArray.forEach(function(item){ 
        {
                var newOption = document.createElement("option");
                newOption.text = item.toString();//item.whateverProperty

                dynamicSelect.add(newOption);

                //new select items should populated immediately
        });
0 голосов
/ 14 мая 2019

Грязный вариант - использовать div и заполнять строку выбора (innerHTML) на основе предыдущего выбора.Вы все еще можете использовать langArray, как упомянуто выше.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...