动态添加元素以选择并在JQuery中设置selectedindex

时间:2012-02-24 10:13:55

标签: javascript jquery jquery-selectors jquery-mobile

我已经创建了一个动态选择列表框,如下所示

for (var i in c) {
            //alert(c[i].IsDefault);
            if(c[i].IsDefault==true){
                //alert('found default');
                $("#AnsType").append("<option value='" + c[i].ID + "'>" + c[i].Code+ "</option>");
                temp = c[i].Code;
            }
            else{
                $("#AnsType").append("<option value='" + c[i].ID + "'>" + c[i].Code+ "</option>");
            }

        }

刷新它

$('#AnsType').selectmenu('refresh');

我尝试了所有这些方法,并尝试选择teh listnone中的第二个元素为我工作。

$('#AnsType').val(temp.toString());
$('#AnsType').get(3).selectedIndex = 3;
$('select#AnsType').val('3');
$("#AnsType option[text='3']").attr("selected","selected") ;
$("#mydropdownlist").attr('selectedIndex', 1);
$('#AnsType').val(3);
$("#AnsType").attr('selectedIndex', 2);
$("#AnsType").val(c[parseInt(temp)].Code);
$("select#AnsType option[selected]").removeAttr("selected");
$("select#AnsType option[value='"+temp+"']").attr("selected", "selected");

这是我的列表框创建时的方式

<select id="AnsType" name="AnsType">
        <option value="1">Obokad</option>
        <option value="3">Egen bokning</option>
</select>

感谢任何帮助,并提前感谢您的帮助..

1 个答案:

答案 0 :(得分:1)

如果您想在创建菜单时预先选择某个元素,请将selected属性添加到相应的选项元素中:

if(c[i].IsDefault==true){
    $("#AnsType")
        .append("<option value='" + c[i].ID + " selected='selected'">" + c[i].Code+ "</option>");
    temp = c[i].Code;
}

请注意,在以编程方式更改基础select元素的值后,必须再次刷新selectmenu:

$('#AnsType').val('3');
$('#AnsType').selectmenu('refresh');

Documentation

  

刷新更新自定义选择
  这用于更新自定义选择以反映本机选择元素的值。如果选择中的选项数与自定义菜单中的项数不同,则会重建自定义菜单。此外,如果传递一个真正的参数,则可以强制重建