2013-11-01 29 views
2

當我嘗試動態地將單元格插入到未知大小的表格中(在單元格中)時,我得到一個「索引或大小爲負值或大於允許的值「。錯誤:錶行incertCell:索引或大小爲負值,或大於允許值

function addTableRow(id, at) 
    { 
     at = typeof at !== 'undefined' ? at : 0; 
     var table=document.getElementById(id); 
     var row=table.insertRow(at); 
      var cells = table.rows[0].cells.length; 
      for(var i = 0; i < cells; ++i) 
      { 
        row.insertCell(i); 
        row.className="success"; 
       row.innerHTML = "OMG"; 
      } 
    } 

如果我在'for'中發出警報,錯誤發生在第二行,我想我錯過了某個地方的任何想法?

回答

1

innerHTML設置爲tr時,您將覆蓋內容tr。這消除了第一個創建的td,如果不存在row.cells[0],則無法創建row.cells[1]。這會導致無效的索引錯誤。

您可以通過設置,而不是新建小區的innerHTML解決您的問題:

for (var i = 0; i < cells; ++i) { 
    var cell = row.insertCell(i); 
    cell.className = "success"; // or row.className? 
    cell.innerHTML = "OMG"; 
} 

A live demo at jsFiddle

+0

它工作得很好,謝謝:) – CheshireChild

相關問題