jquery:按值选择一个Select选项

时间:2013-04-25 20:00:02

标签: jquery

我有以下(=>)Fiddle。它的作用是按值搜索“选择选项”,然后将找到的选项的属性设置为选中状态。很简单。这个脚本(在下面复制)在IE 9和FireFox 17中运行良好,但在Chrome或Safari中则不行。这两个浏览器无法将属性设置为选中。

我在这里错过了什么吗?

编辑:看起来我需要使用.prop()而不是.attr()。

选择HTML:

<select id="listmcu">
    <option value="1002">PA</option>
    <option value="1003">CA</option>
    <option value="1004">OR</option>
    <option value="1005">FL</option>
    <option value="1006">TX</option>
</select>

JQuery;

$(function () {
    var mcu = "1005";
     alert ('Begin: mcu val = ' + mcu);
    //$("#listmcu").find("option:contains('" + mcu + "')").each(function () {
    $("#listmcu").find("option[value='" + mcu + "']").each(function () {
        alert ('In contains: this val = ' + $(this).val());
        if ($(this).val() == mcu) {
            //$(this).attr("selected", "selected");
            $(this).prop("selected", "selected"); // <== appears to work
        }
    });
});

2 个答案:

答案 0 :(得分:4)

您需要使用它来解决您的问题:

$(this).prop("selected", true);

FIDDLE

答案 1 :(得分:0)

你自己太难了。只需在选择框中使用.val,让jQuery完成繁重的工作:

$(function () {
    var mcu = "1005";
     alert ('Begin: mcu val = ' + mcu);
    $("#listmcu").val(mcu);
});

Fiddle