6

我有一个简单的问题,我想删除表中的最后一行,但我复制了一个删除选中的函数:

function deleterow(tableID) {
    try {
         var table = document.getElementById(tableID);
         var rowCount = table.rows.length;

         for(var i=1; i<rowCount; i++) {
              var row = table.rows[i];
              var chkbox = row.cells[0].childNodes[0];
              if(null != chkbox && true == chkbox.checked) {
                   table.deleteRow(row);
                   rowCount--;
                   i--;
              }
         }
    }catch(e) {
        alert(e);
    }
}

如何更改它,以便每次调用时只删除最后一行?谢谢大家的帮助!对此,我真的非常感激!

4

6 回答 6

18

deleteRow函数需要一个索引,然后传递它count - 1

http://jsfiddle.net/jbabey/HEDNZ/

function deleterow(tableID) {
    var table = document.getElementById(tableID);
    var rowCount = table.rows.length;

    table.deleteRow(rowCount -1);
}
于 2012-05-21T14:20:50.177 回答
1
function deleterow(tableID) {

    var table = document.getElementById(tableID);
    var rowCount = table.rows.length;
     var row = table.rows[rowCount - 1 ];

            table.deleteRow(row);

}
于 2012-05-21T14:13:22.917 回答
1

为什么不直接使用:

function deleterow(tableID) {
    var table = document.getElementById(tableID);
    table.deleteRow(-1);
}
于 2018-01-18T17:11:36.803 回答
0

我没有对此进行测试,但我认为这样的事情应该可以工作:

function deleterow(tableID) {
    try {
    var table = document.getElementById(tableID);
    var rowCount = table.rows.length;
    var lastRow = table.rows[rowCount]; 
    table.deleteRow(lastRow);

    }catch(e) {
        alert(e);
    }
}
于 2012-05-21T14:15:44.133 回答
0

我不确定 rowCount 是否对您有特殊意义。

使用 while-- 进行迭代让您先从后面开始。当你真正删除一个时才打破。

function deleterow(tableID) {
    try {
        var table = document.getElementById(tableID);
        var rowCount = table.rows.length;
        var i = rowCount;

        while(i--) {
            var row = table.rows[i];
            var chkbox = row.cells[0].childNodes[0];
            if(null != chkbox && true == chkbox.checked) {
                table.deleteRow(row);
                rowCount--;
                break;
            }
        }
     }catch(e) {
        alert(e);
    }
}
于 2012-05-21T14:23:35.073 回答
-1

使用 table.deleteRow(i);

反而

table.deleteRow(行); 希望这有效:)

于 2016-02-22T22:21:48.210 回答