使用jQuery在option元素上设置selected元素
我在jQuery中生成带有选项元素的选择列表。 简化它看起来像这样:
var sel = $(""); $.each(data, function(i, v){ $("").attr({ "value": i }).html(v).appendTo(sel); });
然后我想要一个选项。 通常我会做类似的事情:
$(sel).val(1);
但是该选项没有选定的属性。
$(sel).html()
给出了类似的东西:
1 2
这就是我的预期:
1 2
我尝试了这种方法(与使用.val()相同的结果):
$.each(data, function(i, v){ var attrs = { "value": i }; if(i == 1){ attrs.selected = "selected"; } $("").attr(attrs).html(v).appendTo(sel); });
但我找到工作的唯一方法是:
$.each(data, function(i, v){ var el = ""; if(i == 1){ el = ''; } $(el).attr({ "value": i }).html(v).appendTo(sel); });
还有其他更好的方法吗?
您可以使用本机setAttribute()
方法 。 我相信jQuery会混淆属性和属性之间的区别。
这将通过元素的
options collection
索引获取所需的 ,并设置属性:
sel[0].options[1].setAttribute('selected','selected');
或者这使用jQuery首先设置值,然后返回并使用本机selectedIndex
属性获取正确的选项。
sel.val(1); sel[0].options[sel[0].selectedIndex].setAttribute('selected','selected');
编辑:关闭主题一点,但你可以创建元素有点不同,如下所示:
$("
从jQuery 1.4开始,您可以发送一组要为新元素设置的值。