Internet Explorer javascript兼容性

时间:2011-08-10 18:45:51

标签: javascript asp.net windows-server-2008

我有一个简单的javascript函数,可以在选中标题复选框时检查所有复选框。

function SelectAll(id) {       
    var grid = document.getElementById("<%=ui_downlinkGrid.ClientID %>");
    var cell;
    if (grid.rows.length > 0)
    {
        for (i = 0; i < grid.rows.length; i++)
        {
            cell = grid.rows[i].cells[0];
            cell.childNodes[1].checked = document.getElementById(id).checked;
        }
    }
}

我在IE 9上对此进行了测试,效果非常好。但是,一旦我在Windows Server 2008上获得它,它就不起作用,并且调试器显示此错误:对象不支持此属性或方法。

这是兼容性问题吗?我该如何解决这个问题?

编辑:错误在这一行:

cell.childNodes[1].checked = document.getElementById(id).checked

enter image description here

1 个答案:

答案 0 :(得分:1)

childNodes返回文本节点以及元素,您现在正在点击文本节点,而不是您尝试访问的输入,这似乎是合理的。请改用childrengetElementsByTagName

以下假设<input>之前有一个元素:

cell.children[1].checked = document.getElementById(id).checked;