下载innerHTML在IE中不能正常工作?

时间:2010-11-10 10:18:04

标签: javascript html

我正在使用javascript填充下拉列表,并且它在每个浏览器中运行良好,当然,除了Internet Explorer(所有版本甚至8)。

以下是填充下拉列表的功能:

function updateDropDown(divId, dropdownId) {
    var containerDiv = document.getElementById(divId);
    var checkboxes = $('.checkBox');
    var dropDownHTML = "";
    dropdownHTML = document.getElementById(dropdownId).innerHTML;
    document.getElementById(dropdownId).innerHTML = "";

    for (var i = 0; i < checkboxes.length; i++) {
        if (checkboxes[i].checked) {
            document.getElementById(dropdownId).innerHTML = document.getElementById(dropdownId).innerHTML + "<option value=" + checkboxes[i].id + ">" + checkboxes[i].id + "</option>";
            alert(document.getElementById(dropdownId).innerHTML);
        }
    }
}

基本上,这个函数获取带有类复选框的所有类元素,循环遍历它们并填充下拉列表。

以下一行:

alert(document.getElementById(dropdownId).innerHTML);

已添加到debug。

在Firefox和其他浏览器中,这是显示的内容,即预期输出:

<option value="myValue">myValue</option>

在IE中,这是输出:

GBP</option>

有谁知道为什么会这样?

2 个答案:

答案 0 :(得分:4)

是的我在下拉列表中遇到同样的问题,您需要创建下拉列表的选项,如下面的链接(它在所有浏览器中兼容)

http://www.electrictoolbox.com/javascript-add-options-html-select/

希望有所帮助

答案 1 :(得分:0)

这里我使用Javascript将值添加到下拉列表中。注意这些值不会在服务器端获取。希望这对你有用。它也适用于IE。

function FillDropDownList() {
    var energy = "[['1','FireWood']]"; //JSON FORMAT   
    if (energy != null) {
        ddl = document.getElementById('<%= ddl.ClientID %>');
        var len = ddl.options.length;
        ddl.length = 0;
        document.getElementById('<%= ddl.ClientID %>').options[0] = new Option("--Select--", "0");

        for (i = 0; i < energy.length; i++) {
            document.getElementById('<%= ddl.ClientID %>').options[i + 1] = new Option(energy[i][1], energy[i][0]);
        }
    }
}