我正在尝试使用复选框删除文本框。这是javascript:
function deleteRowFromTable(tableID) {
try {
var table = document.getElementById(tableID);
var rowCount = table.rows.length;
alert(rowCount);
for (var i = 0; i < rowCount; i++) {
var row = table.rows[i];
var chkbox = row.cells[0].childNodes[0];
if (null != chkbox && true == chkbox.checked) {
if (rowCount <= 2) {
alert("Cannot delete all the rows.");
break;
}
table.deleteRow(i);
rowCount--;
i--;
}
这是我的HTML
<div class="col-md-4" style="overflow-x:auto;">
<br>
<input class="col-md-3" type="button" value="Delete" onclick="deleteRowFromTable('tableId3')">
<br><br>
<table class="col-md-6" id="tableId3">
<tr>
<th></th>
<th>table 3</th>
</tr>
<tr>
<!-- <td align="center"><input type="checkbox" name="checkbox"></td>
<td><input name="name-1" id="name-1" value=""/></td>-->
</tr>
</table>
</div>
请告知我为什么我收到的错误无法获得属性&#39; childnodes&#39;未定义或空引用?
答案 0 :(得分:1)
这一行:
var chkbox = row.cells[0].childNodes[0];
假设row.cells[0]
将返回一个对象。但是如果一行中没有单元格(例如,HTML中的第二行,其中没有单元格),它将返回undefined
。您无法阅读.childNodes
的{{1}}。