无法获得财产' childnodes'

时间:2016-12-08 10:33:20

标签: javascript html

我正在尝试使用复选框删除文本框。这是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;未定义或空引用?

1 个答案:

答案 0 :(得分:1)

这一行:

var chkbox = row.cells[0].childNodes[0];

假设row.cells[0]将返回一个对象。但是如果一行中没有单元格(例如,HTML中的第二行,其中没有单元格),它将返回undefined。您无法阅读.childNodes的{​​{1}}。