我使用jQuery和具有服務器代碼返回下列值用鍵:值對填充選擇框?
0:SELECT ONE;1:VALUE1;2:VALUE2 etc
如何填充到這個選擇框?
var="0:SELECT ONE;1:VALUE1;2:VALUE2";
$("#targetSelectBox"). ???????
我使用jQuery和具有服務器代碼返回下列值用鍵:值對填充選擇框?
0:SELECT ONE;1:VALUE1;2:VALUE2 etc
如何填充到這個選擇框?
var="0:SELECT ONE;1:VALUE1;2:VALUE2";
$("#targetSelectBox"). ???????
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()));
});
應該是$('')來創建一個新元素。否則,您將更新頁面上所有
@CalebD:絕對正確。固定。好的趕上:-) – prodigitalson 2010-01-21 18:47:21
// 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]));
}
它工作在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()));
}
你也可以用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);
}
});
add()沒有工作。我用append()代替。 – TambaySaPinas 2017-09-26 18:37:22
請不要用java標記javascript問題。 – 2010-01-21 18:45:41