2

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

    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'中发出警报,错误发生在第二行,我想我在某个地方错过了一些东西,知道吗?

4

1 回答 1

1

tr设置一些内容时,您将覆盖它的内容innerHTML。这会清除第一个 created td,如果不存在row.cells[0],则无法 create 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";
}

jsFiddle 的现场演示

于 2013-11-01T23:25:22.913 回答