删除动态构建的表中的行

Delete rows in table built dynamically

本文关键字:删除 构建 动态      更新时间:2023-09-26

我已经被这个愚蠢的问题困扰了好几天了。我想这并不复杂,但我可能需要别人的帮助…

事情是这样的:我从html页面中的一个空表开始。只有带有列名的头部。然后,通过php获得JSON数据,并通过创建新行和新单元格填充表,如下所示:

for (var j = 0; j < jsonVal.length; j++){
            var tr = table.insertRow(-1);
            tr.insertCell(-1).innerHTML = "<img src='"" + jsonVal[j].image + "'">";
            tr.insertCell(-1).innerHTML = jsonVal[j].name;
            tr.insertCell(-1).innerHTML = jsonVal[j].rating;
        };

现在,我要做的就是根据一些参数更新这个表(按名称或评级排序,只有5行等)为此,我想删除当前必须与新数据放在一起的所有行。但是我找不到删除它们的方法。下面是我的删除代码:

var currentTable = document.getElementsByTagName("table")[0];
var rowCount = currentTable.rows.length;
for(var i = 1; i < rowCount; i++){
    currentTable.deleteRow(i);
}

我得到以下错误:

IndexSizeError:索引或大小小于或大于允许的值

这是正确的做法吗?

PS:很抱歉解释这么长。

对不起,我只需要在for循环中将I更改为1,如下所示:

var currentTable = document.getElementsByTagName("table")[0];
var rowCount = currentTable.rows.length;
for(var i = 1; i < rowCount; i++){
    currentTable.deleteRow(1);
}