我正在使用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);
});
有没有其他更好的方法?