0

私は次の (=>) Fiddleを持っています。それが行うことは、値で選択オプションを検索し、見つかったオプションの属性を選択済みとして設定することです。ものすごく単純。このスクリプト (以下に複製) は、IE 9 および FireFox 17 では正常に動作しますが、Chrome または Safari では動作しません。これら 2 つのブラウザは、属性を選択済みとして設定できません。

ここで何か不足していますか?

編集: .attr() ではなく .prop() を使用する必要があったようです。

選択 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
        }
    });
});
4

2 に答える 2

0

あなたは自分に負担をかけすぎています。選択ボックスで.valを使用するだけで、jQuery に面倒な作業を任せることができます。

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

フィドル

于 2013-04-25T20:08:35.487 に答える