如何从js生成jquery multiselect中的选项值

时间:2015-04-22 18:36:04

标签: javascript jquery jquery-multiselect

我试图使用javascript在我的jquery multiselect中动态生成选项值。

function prova(data){
      var t = 0;
      var tmp = new Array();
      var keys = new Array();
      $("#select-1").multiselect({
      multiple: true,
      header: true,
      noneSelectedText: "Select an Option",
      selectedList: 1
    });
    var stringa ="";
    $.each(data, function(key,value){
    stringa +="<option value=\""+key+"\">"+key+"</option>";
    if(t==0){
    tmp[0] = key;
    }
    t++;
    });
    $("#select-1").html(stringa);
}

我在#select-1中生成的值是这样的:

<select id="select-1" size="5" name="example-basic" title="Basic example" style="display: none;">
<option value="name1">name1</option>
<option value="name2">name2</option>
<option value="name3">name3</option>
<option value="name4">name4</option>
<option value="name5">name5</option>
</select>

问题是它没有将选项值填充到jquery multiselect中,它仍然是空的。

1 个答案:

答案 0 :(得分:3)

因为您直接在元素上使用.html(),所以在插入新元素之前,您将替换其中的元素。 您可能希望使用.append(),如:

<div class="foo">bar</div>

或者也可以在.html()用法中使用以前的值,如:

$.each(data, function(key,value){
    stringa +="<option value=\""+key+"\">"+key+"</option>";
    if(t==0){
    tmp[0] = key;
    }
    t++;
    });
    $("#select-1").append(stringa);