【发布时间】:2021-08-28 22:55:18
【问题描述】:
我希望有一个最初没有行的表,然后动态创建每一行并能够删除每一行。 我得到无法读取未定义的属性“childNodes” 请告诉我应该怎么做, 谢谢。
function addRow() {
var table = document.getElementById("myTable");
var row = table.insertRow(0);
var cell1 = row.insertCell(0);
var cell2 = row.insertCell(1);
cell1.innerHTML = "NEW CELL1";
cell2.innerHTML = "NEW CELL2";
}
function deleteRow(tableID) {
try {
var table = document.getElementById(tableID);
var rowCount = table.rows.length;
for (var i = 0; i < rowCount; i++) {
var row = table.rows[i];
var chkbox = row.cells[0].childNodes[0];
table.deleteRow(i);
rowCount--;
i--;
}
} catch (e) {
alert(e);
}
}
<!DOCTYPE html>
<html>
<head>
<style>
table,
td {
border: 1px solid black;
}
</style>
</head>
<body>
<p>Click the button to add a new row at the first position of the table and then add cells and content.</p>
<table id="myTable">
<TR>
</TR>
</table>
<br>
<button type="button" onclick="addRow()">Add</button>
<button type="button" onclick="deleteRow('myTable')">Delete</button>
</body>
</html>
【问题讨论】:
-
每次点击
Delete按钮时是否要删除第一行? -
我想在单击删除时删除每个现有行。所以之后可以用新行更新表...
-
你为什么还有
var chkbox = row.cells[0].childNodes[0];?除了抛出错误,它什么都不做 -
@Cameron121341 还是不清楚你到底想要什么?
标签: javascript html innerhtml