Internet Explorer javascript兼容性
我有一个简单的javascript函数,可以在选中标题复选框时选中所有复选框Internet Explorer javascript兼容性,javascript,asp.net,windows-server-2008,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
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;
}
}
}
childNodes
返回文本节点和元素,您现在点击的似乎是文本节点,而不是试图访问的输入。改为使用子项
或getElementsByTagName
:
以下假设在
之前有一个元素:
你们有什么版本的浏览器?IE9?那么它应该可以工作了。网格元素实际上有一个名为“rows”的属性吗?IE的哪个版本?错误发生在哪一行?是的。正如我所提到的,它在IE9上进行了测试,效果非常好。在不知道您正在遍历的标记的情况下,我认为问题在于
cell.childNodes[1]
不是您所认为的节点。它可能是一个空的textNode。你能发布一个JSFIDLE来揭示这个bug吗?
cell.childNodes[1].checked = document.getElementById(id).checked
cell.children[1].checked = document.getElementById(id).checked;