以编程方式创建选择列表

时间:2011-07-06 19:38:52

标签: jquery selectlist

有没有人知道一种以编程方式创建HTML选择列表的技术,包括使用JQuery的选项?

8 个答案:

答案 0 :(得分:102)

var arr = [
  {val : 1, text: 'One'},
  {val : 2, text: 'Two'},
  {val : 3, text: 'Three'}
];

var sel = $('<select>').appendTo('body');
$(arr).each(function() {
 sel.append($("<option>").attr('value',this.val).text(this.text));
});

答案 1 :(得分:12)

var s = $('<select/>');
var o = [1, 2, 3];
for (var i in o) {
    s.append($('<option/>').html(o[i]));
}
$('body').append(s);

答案 2 :(得分:6)

我知道这是旧的,但嘿嘿:

$selectBox.html($.map(myArray, function(){
    return $('<option/>', {text: this});
}));

答案 3 :(得分:5)

这很简单:

var selectList = "<select name='numbers'>";
for (var x = 0; x < 10; x++) {
    selectList += "<option>" + x + "</option>";
}
selectList += "</select>";
$('#my-container').html(selectList);

答案 4 :(得分:0)

如果您已经&lt; select&gt;列出DOM中的某个地方,重复使用它并使其与之前的用户交互空白......

// Call existing list, chain empty()
var my_list = $("#my_list").empty();

// Build list
$(my_arr).each(function() {
 my_list.append($(<option>").attr(\'value\',this.item_id).text(this.item_name));
});

答案 5 :(得分:0)

这是一个变体 - 基于此线程中的先前答案 - 除了选择输入选项之外的所有选项都可以通过输入JSON对象指定:

  

看看是否可以在JSON输入中以某种方式指定options数组会很有趣吗?

    var fruitListProfile = {
        id : someKey,
        class : 'fruit_list',
        style : 'margin-right: 20px; '
    };

    var selectInput = $('<select/>', fruitListProfile);

    var fruitOptions = ['apple', 'cherry', 'kiwi'];
    for (var i in fruitOptions) {
        selectInput.append($('<option/>').html(fruitOptions[i]));
    }

答案 6 :(得分:0)

以下是使用ajax获取用于创建具有键值对的选择列表的json响应的问题答案的另一个版本

        $.ajax({
        type: 'post',
        url: 'include/parser.php',
        data: {                     
            mode: 'getSubtypes',
            type: type
        },
        success: function (response) {
            var mySubtype = document.getElementById("Component");
            var components = $.parseJSON(response);

            var selectList = document.createElement("select");
            selectList.id = "subtype";
            selectList.name = "subtype";
            mySubtype.appendChild(selectList);
            $('#subtype').append('<option value="">Select ...</option>');
            $.each(components, function(k, v) {
                var option = new Option(v, k); 
                $('#subtype').append($(option));               
            });
        }
    });        

答案 7 :(得分:0)

我认为这很简单。恕我直言。

pyplot