2011-10-18 50 views
3

我有一个表,我有两个按钮来添加和删除表中的行。删除表的最后3行

所以添加行很简单(我每次都通过ajax获得3行)。

现在我希望能够通过点击删除按钮 删除最后3行的表,所以除非有某种功能或....删除我的表最近添加!我需要删除自己

$('#tbl tr:lt(3)').remove(); 

但去年3不是第一批表的最后三行!

或我必须做一些愚蠢像

function remove(){ 
var i ; 
for(i=0 ; i < 3 ; i++){ 
$('#table tr:last').remove(); 
} 
alert('removed'); 
} 

回答

7
$("table tr").slice(-3).remove(); 
+0

感谢名单克里斯我还有一个问题,为什么这个无效: var row_count = $(this).parent()。siblings('table tr')。length; 我可以得到这样的桌子,但我不能得到trs – max

+0

骇人听闻! HTML表格元素有一个行集合,最简单和最快捷的方式(如果你必须使用jQuery)应该是'$(#tableId)[0] .rows.length'或类似的。 – RobG

+0

thanx现在工作有没有办法删除最后3行使用$ this对象($ this引用按钮)? $(this).parent()。siblings('table tr')。slice(-3).remove(); – max

2

这不是很愚蠢的,这是一个很好的解决方法。清理它,我会用

function remove(){ 
    $('#table tr:last').remove(); 
    $('#table tr:last').remove(); 
    $('#table tr:last').remove(); 
    alert('removed'); 
} 
0

我同意,这不是愚蠢的。但是,如果我是你,我会加一个参数,行数删除:

function removeLastRows(numberOfRows){ 
    var i ; 
    for(i=0 ; i < numberOfRows ; i++){ 
     $('#table tr:last').remove(); 
    } 
    alert('removed'); 
} 
0

只是为了简单的JS比较,

function removeLastRows(table, n) { 
    if (!table || !n) return; 
    var row, rows = table.rows; 
    while (n--) { 
    row = rows[rows.length]; 
    row.parentNode.removeChild(row); 
    } 
} 

removeLastRows(document.getElementById('table', 3));