我有以下代码
$("#tlbQueryConf tr:last").append(
$('<td></td>').append(
$(".ddlFields").clone().attr('id', 'ddlFields-' + conf.id).attr('class', '').val(conf.field)));
所以现在,我正在努力实现它的属性selected
将新元素赋予我选择的值
我试过这样,但是将属性selected
设置为元素而不是项目
$(".ddlFields").clone().attr('id', 'ddlFields-' + conf.id).attr('class', '').val(conf.field).attr('selected',true)
导致其跟随
的html<select name="ctl00$ContentPlaceHolder1$ddlFields" id="ddlFields-1" class="">
<option value="1">Prueba</option>
<option value="2">cantidad de fallas</option>
<option value="3">nº</option>
<option value="4">Ciudad</option>
<option value="5">COID</option>
<option value="6">COID_DESC</option>
<option value="7">Creado_EN</option>
<option value="8">DSLAM PROVEEDOR</option>
</select>
即使使用val()
属性selected
,也未设置为项目
答案 0 :(得分:2)
如果我正确理解了这个问题(如果我误解了,请纠正我),你想改变下拉列表的选择吗?
你可以这样做:
$(".ddlFields").val("value of the item you want selected");
您可以像这样检索所选的值:
$(".ddlFields").val();
您不必担心设置自己的selected
属性,jquery会在您设置列表值时为您处理。
有关详情,请参阅此重复提问:Change the selected value of a drop-down list with jQuery
答案 1 :(得分:2)
当您选择其中一个选项时,您正在为selected=selected
元素添加select
属性。试试这个:
$("#tlbQueryConf tr:last").append(
$('<td>', {
html: $(".ddlFields").clone()
.attr({'id':'ddlFields-' + conf.id,'class':''}).val(conf.field)
})
);
答案 2 :(得分:1)
您要选择哪个项目?根据您的代码,它会将所选属性添加到select标记。您应指定要选择的选项。试试这个
$(".ddlFields").clone().attr({ 'id': 'ddlFields-' + conf.id, 'class': ''}).val(conf.field);