2013-04-22 73 views
0

我有以下功能追加行和單元格創建一個表時爲空table的rowIndex使用Javascript

 function createTable(size) { 
      var table = document.getElementById("gameTable"); 
      for (var i=0; i<size; i++) { 
       var tr = document.createElement("tr"); 
       for (var j=0; j<size; j++) { 
        var td = document.createElement("td"); 
        tr.appendChild(td); 
       } 
       table.appendChild(tr); 
       tr.rowIndex = i; 
      } 

     } 

到目前爲止好。

我的問題是,後來,當我試圖達到表內的特定細胞:

var x = target.parentNode.rowIndex; 
var y = target.cellIndex; 

table.rows[x].cells[y].innerHTML = 'blah' 

target是用戶點擊特定的TD

rows[x]索引總是-1。每次我嘗試上面的行時,我得到一個錯誤:「不能讀屬性」單元格的未定義「
我甚至嘗試手動設置每行的rowIndex它應該是(在函數內),但無濟於事。

cellIndex出來很好,但rowIndex是-1,並且每一個新創建的錶行。

我該怎麼做才能糾正這個問題?

+1

當您嘗試訪問表時,您的代碼在哪裏? – skyline3000 2013-04-22 13:50:14

+1

你真的應該追加到tbody而不是表格元素。 – epascarello 2013-04-22 13:54:09

+0

我編輯過,使其更清晰。一個表格元素已經存在,我只需添加TR和TD。 – frrlod 2013-04-22 13:56:02

回答

0

這可以通過將<tr>元素附加到<tbody>來解決。

 function createTable(size) { 
      var table = document.getElementById("gameTable"); 
      var tb = document.createElement("tbody"); 
      for (var i=0; i<size; i++) { 
       var tr = document.createElement("tr"); 
       for (var j=0; j<size; j++) { 
        var td = document.createElement("td"); 
        tr.appendChild(td); 
       } 
       tb.appendChild(tr); 
      } 
      table.appendChild(tb); 
     } 
+0

表格創建工作正常,沒有tbody Chrome。問題必須在於他如何訪問'.rows []'屬性。 – Alnitak 2013-04-22 14:27:52