2011-08-10 137 views
0

我有一个简单的JavaScript函数来选中标题复选框时检查所有复选框。Internet Explorer的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

+0

你有什么版本的浏览器吗? IE9?它应该工作。 – Mrchief

+0

网格元素是否实际上有一个名为“rows”的属性? –

+0

什么版本的IE?错误发生在哪条线上? – tskuzzy

回答

1

childNodes返回文本节点以及元素,其合理的,你现在打一个textnode,而不是输入你试图访问。使用childrengetElementsByTagName代替:

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

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