Создание меню параметров HTML, используя значения из массива? - PullRequest
0 голосов
/ 23 апреля 2011

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

Кто-нибудь знает правильный способ сделать это?

Кстати, я использую jquery и mootools для этого сайта, если это поможет.

Ответы [ 3 ]

1 голос
/ 23 апреля 2011
var selectM = document.createElement("select"), values = ["hi", "hello", "hola"];

for(var i = 0; i < values.length; ++i) {
    var opt = document.createElement("option");
    opt.value = values[i];
    opt.text = values[i];
    selectM.add(opt, null);       
}

// do stuff with your new select menu
document.getElementById("someDiv").appendChild(selectM);
0 голосов
/ 24 апреля 2011

, так как у вас есть vanilla js и jquery, вот один из способов сделать это через mootools 1.3

var makeDropdown = function(vals) {   
    return new Element("select").adopt(vals.map(function(el) {
        return new Element("option[value="+el+"][text="+el+"]");
    }));
};


makeDropdown(["hi", "hello", "hola"]).inject(document.body);
0 голосов
/ 23 апреля 2011

Если вы хотите использовать jQuery ...

var arr = [1, 2, 3];
var $select = $('<select>');
for (var i = 0; i < arr.length; i++) {
    var val = arr[i];
    $('<option>').val(val).text(val).appendTo($select); // This assumes your array is an primitive type array, if it's an object array you could use ex. val.Value
}

$select.appendTo($('... your selector here ...'));
...