如何根据数组添加选项框选项?

时间:2011-07-14 02:29:23

标签: javascript jquery

我遇到了这个问题。我想要做的是使用jquery javascript在动态选择框中创建选项值。

例如,如果我有一个问题,比如你最喜欢的水果?因此,用户应该能够从默认选择框中选择答案,例如“Apple,Orange,Pear,Banana”。然后他们可以点击“添加更多水果”,然后会出现第二个选择框,其中包含相同的选择数组。

基本上参考the previous stack overflow question from another member,我只能把信息拼凑到这里。但是,除了默认的“选择水果”选项之外,我无法在运行时从数组中打印出选项值。

$(function() {
// set the array
var fruit = new Array("Apple", "Orange", "Pear", "Banana");

function addFruit() {
    $.each(fruit, function(key, value) {   
        $('#fruit')
        .append($('<option>', { value : key })
        .text(value)); 
    });
}

var i = $("li").size() + 1;
$("a#addmore").click(function() {
    $("#addmore_row").append('<li>' +
    '<select name="fruit[]" id="fruit">' +
    '<option value="">Select Fruit:</option>' +
    addFruit()                
    + '</select>' +
    '</li>');
    return false;
});

});

任何人都可以帮我解决这个问题吗?非常感谢你。

1 个答案:

答案 0 :(得分:1)

addFruit在构造代表select的字符串时被调用。由于它仍然构造要追加的字符串,select实际上还不存在,但addFruit仍然被调用。简而言之,在附加addFruit之后,将select移出字符串连接。

换句话说,这个:

$("#addmore_row").append('<li>' +
'<select name="fruit[]" id="fruit">' +
'<option value="">Select Fruit:</option>' +
'</select>' +
'</li>');
addFruit();
return false;