1

selectHTMLページに2つのドロップダウン入力タイプがあります。

1st select ドロップダウンの内容は以下の通りです。2 番目の選択は、最初は空です。

<select id="box1" name="box1">
    <option selected="selected" value="">--Select-One--</option>
    <option value="Apple"> Apple </option>
    <option value="Orange"> Orange </option>
</select>

onchange最初のボックスから呼び出され、2 番目のボックス(つまり、box2)selectを更新する js 関数を追加しました。select

var select1 = document.getElementById("box1");
select1.onchange = function() {
    var select2 = document.getElementById("box");
    while (select2.firstChild) {
        select2.removeChild(select2.firstChild);
    }
    for ( var i = 1; i < select1.options.length; i++) {
        if (select1.selectedIndex == i)
            continue;
        var o = document.createElement("option");
        o.value = select1.options[i].value;
        // o.selected = "selected";
        o.text = select1.options[i].text;
        select2.appendChild(o);
        alert("Here " + i);
    }
}

これは、Chrome と Firefox ではうまく機能しますが、IE ではうまく機能しません。appendChildおそらくそれがIEで問題を引き起こしていると思います。

おそらくIEの異なるバージョンでこれを修正するためのヒントを教えてください。

ノート:

  1. IE 9 でテスト済み。
  2. 同じエラーで他の質問を確認しましたが、それらのほとんどはテーブルの行に関するものでした。
4

1 に答える 1

0

クロス ブラウザー機能が必要な場合は、jQuery などの Javascript ライブラリを使用することをお勧めします。jQuery では、次のようなことができます。

jQuery("#selectId").append('<option value="' + text + '">' + text + '</option>');
于 2012-09-03T19:34:45.553 に答える