删除表格中的最后一行

时间:2012-05-21 14:10:56

标签: javascript

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

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);
    }
}

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

6 个答案:

答案 0 :(得分:9)

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);
}

答案 1 :(得分:1)

function deleterow(tableID) {

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

            table.deleteRow(row);

}

答案 2 :(得分: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);
    }
}

答案 3 :(得分: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);
    }
}

答案 4 :(得分:0)

为什么不使用:

function deleterow(tableID) {
    var table = document.getElementById(tableID);
    table.deleteRow(-1);
}

答案 5 :(得分:-1)

使用 table.deleteRow(ⅰ);

而不是

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