Javascript 表行incertCell:索引或大小为负值,或大于允许的值

Javascript 表行incertCell:索引或大小为负值,或大于允许的值,javascript,html,row,cells,Javascript,Html,Row,Cells,当我尝试将单元格动态插入到具有未知大小(以单元格为单位)的表中时,我得到一个“索引或大小为负,或大于允许值。”错误: 函数addTableRow(id,at) { at=at的类型!==“未定义”?at:0; var table=document.getElementById(id); var行=table.insertRow(at); var cells=table.rows[0].cells.length; 对于(变量i=0;i

当我尝试将单元格动态插入到具有未知大小(以单元格为单位)的表中时,我得到一个“索引或大小为负,或大于允许值。”错误:

函数addTableRow(id,at)
{
at=at的类型!==“未定义”?at:0;
var table=document.getElementById(id);
var行=table.insertRow(at);
var cells=table.rows[0].cells.length;
对于(变量i=0;i<单元格;++i)
{
第1行插入单元格(i);
row.className=“成功”;
row.innerHTML=“OMG”;
}
}

如果我在第二行的“for”中添加了一个警告,我想我遗漏了什么,知道吗

在设置一些
innerHTML
时,您正在覆盖
tr
的内容。这将清除第一个创建的
td
,如果不存在
行.cells[0]
,则无法创建
行.cells[1]
。这会导致无效索引错误

您可以通过设置新创建单元格的
innerHTML
来解决问题:

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

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