2011-08-10 182 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;