2010-01-21 82 views
4

我使用jQuery和具有服务器代码返回下列值用键:值对填充选择框?

0:SELECT ONE;1:VALUE1;2:VALUE2 etc 

如何填充到这个选择框?

var="0:SELECT ONE;1:VALUE1;2:VALUE2"; 
$("#targetSelectBox"). ??????? 
+1

请不要用java标记javascript问题。 – 2010-01-21 18:45:41

回答

4
var opts = "0:SELECT ONE;1:VALUE1;2:VALUE2"; 
opts = opts.split(';'); 
var target = $("#targetSelectBox"); 
$.each(opts, function(i, opt){ 
    opt = opt.split(':'); 
    target.append($('<option />').val(opt[0].trim()).text(opt[1].trim())); 
}); 
+0

应该是$('

+0

@CalebD:绝对正确。固定。好的赶上:-) – prodigitalson 2010-01-21 18:47:21

0
// Variable holding key-value pairs 
var values = "1:VALUE;2:VALUE"; 
// Convert to an array of key-values 
var vals = values.split(";"); 
// Cycle through each pair 
for (var i = 0; i < vals.length; i++) { 
    // Split to get true key, and true value 
    var parts = vals[i].split(":"); 
    // Append new option holding true key, and true value 
    $("#targetSelectBox").append($("option").val(parts[0]).text(parts[1])); 
} 
0

它工作在IE罚款的Firefox,但不是。我得到“对象不支持属性或方法”。所以我提出这个解决方案:

var target = $("#targetSelectBox") 
var vals = values.split(";"); 
for (var i = 0; i < vals.length; i++) { 
    var parts = vals[i].split(":"); 
    target.append($('<option />').val(parts[0].trim()).text(parts[1].trim())); 
} 
1

你也可以用jquery的add()函数。

例如,

var options = ["0":{"description":"Select an item"}, "1":{"description":"item 1"}]; 
var dropdown = $("#dropdown_id")[0]; 
$.each(options, function(i, item) { 
    var option = new Option(item.description, i); 
    if ($.browser.msie) { 
     dropdown.add(option); 
    } 
    else { 
     dropdown.add(option, null); 
    } 
}); 
+0

add()没有工作。我用append()代替。 – TambaySaPinas 2017-09-26 18:37:22