微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

以编程方式更改jQuery选择选项 – 不起作用

我试图记住 jquery选择中所选选项的描述.不幸的是,我不能以编程方式选择想要的选项.

这里有一些更多细节:HTML:

<div style="width: 140px">
<label for="select-choice-a" class="select">Lagerort: </label>
<select id="sel_stockIDs">
<option disabled="disabled">Lagerort</option>
</select>
</div>

JS(在ajax调用之后插入所有有效选项):

for (var j = 0; j < paramsParsed.length; j++) {
   // paramsParsed is {0001,0002,0003 etc.}
    loadedStocks[j] = '<option value=' + (j+1) + '>' +  paramsParsed[j] + '</option>';
    $("#sel_stockIDs").append(loadedStocks[j]);
}

还将一个Listener设置为select,用于存储用户决策
JS:

$('#sel_stockIDs').change(function() {
   sessionStorage.setItem("stockId",$('#sel_stockIDs option:selected').text());
});

模样”:

用户选择了有效的“Lagerort”选项(stockId)之后,将打开下一个HTML站点.用户的决定(选项文本和选项值)保存在localStorage中.返回此页面时,所做出的决定仍应是选定的选项.例如,用户选择Lagerort“0001”,更改站点并返回 – 所选选项仍应为“0001”.因此,我再次加载股票(这很好)

for (var j = 0; j < paramsParsed.length; j++) {
   // paramsParsed is {0001,0003 etc.}
    loadedStocks[j] = '<option value=' + (j+1) + '>' +  paramsParsed[j] + '</option>';
    $("#sel_stockIDs").append(loadedStocks[j]);
}

现在我想再次设置所选的选项.但这不起作用….我已经尝试了很多不同的方法,并且在这2天内(我猜……)简单的问题就丢失了.这是我到目前为止的方法(没有任何工作,但是)….为了更好的测试,想要的选项是硬编码的(值= 1,text = 0001 =两者都将链接到select中的第一个选项).

// Function is called,when user re-opens HTML-site 1
function reInsertData() {
    // setting the first option as selected
    // $('#sel_stockIDs option')[1].selected = true;
    // $('#sel_stockIDs option[value=1]')[0].selected = true;
    // $('#sel_stockIDs :nth-child(1)').attr('selected','selected');
    // $('#sel_stockIDs option').eq(1).attr('selected','selected');
    // $("#sel_stockIDs").val("1");
    // $("#sel_stockIDs").text("0001").attr('selected',true);
    // $("#sel_stockIDs").text("0001").attr('selected','selected');
    // $("#sel_stockIDs").text( "0001" ).prop('selected',true);
    // $("#sel_stockIDs").text( "1" ).prop('selected',selected);
    // $("select option").each(function(){
    //  if ($(this).text() == "0001")
    // This one finds the right option...... but doesn't select it
    //    $(this).attr("selected","selected");
    // });

 }

在JSfiddle中插入一些这样的方法 – 但是在我的应用程序中没有显示代码.我正在使用的JS-versions是jQuery-mobile-1.3.0和jQuery-1.9.1.min.我会非常感谢任何帮助或一些提示

解决方法

$("#sel_stockIDs").val("1");

是正确的方法.

此外,您可能希望将值属性值包装在引号中:

loadedStocks[j] = '<option value="' + (j+1) + '">' +  paramsParsed[j] + '</option>';

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐