如何从js生成选项值到jquery多选
How to generate option values into jquery multiselect from js
我正在尝试使用 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 中,它仍然是空的。
因为您直接在元素上使用 .html() ,所以您在插入新元素之前替换了其中的元素。
你可能想像这样使用 .append() :
$.each(data, function(key,value){
stringa +="<option value=\""+key+"\">"+key+"</option>";
if(t==0){
tmp[0] = key;
}
t++;
});
$("#select-1").append(stringa);
或者也使用以前的值,在 .html() 用法中,如:
$.each(data, function(key,value){
stringa +="<option value=\""+key+"\">"+key+"</option>";
if(t==0){
tmp[0] = key;
}
t++;
});
$("#select-1").html($("#select-1").html()+stringa);
我正在尝试使用 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 中,它仍然是空的。
因为您直接在元素上使用 .html() ,所以您在插入新元素之前替换了其中的元素。 你可能想像这样使用 .append() :
$.each(data, function(key,value){
stringa +="<option value=\""+key+"\">"+key+"</option>";
if(t==0){
tmp[0] = key;
}
t++;
});
$("#select-1").append(stringa);
或者也使用以前的值,在 .html() 用法中,如:
$.each(data, function(key,value){
stringa +="<option value=\""+key+"\">"+key+"</option>";
if(t==0){
tmp[0] = key;
}
t++;
});
$("#select-1").html($("#select-1").html()+stringa);