1

我在 html 页面上有两种下拉select输入类型。

第一个选择下拉菜单的内容如图所示。第二个选择最初是空的。

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

我添加了一个 js 函数,它被称为onchange第一个select盒子并更新了第二个select(即 box2)

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 回答