我正在jquery中生成一个带有选项元素的选择列表。简化如下:
var sel = $("<select>");
$.each(data, function(i, v){
$("<option>").attr({ "value": i }).html(v).appendTo(sel);
});
然后我想选择一个选项。通常我会做如下的事情:
$(sel).val(1);
但该选项不存在所选属性。
$(sel).html()
给出如下信息:
<option value="1">1</option>
<option value="2">2</option>
这就是我所期望的:
<option value="1" selected="selected">1</option>
<option value="2">2</option>
我尝试过这种方法(与使用.val()的结果相同):
$.each(data, function(i, v){
var attrs = { "value": i };
if(i == 1){
attrs.selected = "selected";
}
$("<option>").attr(attrs).html(v).appendTo(sel);
});
但我找到工作的唯一方法是:
$.each(data, function(i, v){
var el = "<option>";
if(i == 1){
el = '<option selected="selected"></option>';
}
$(el).attr({ "value": i }).html(v).appendTo(sel);
});
还有其他更好的方法吗?