2011-07-26 52 views
12
$("#tableid tbody:last").append(html); 

这会动态创建表格行。 每个新创建的行都有一个“删除”按钮。jQuery basic:当点击此行的按钮时,如何删除表格行?

现在,如果我点击删除按钮,该行将被删除。 我该如何做到这一点。

在此先感谢。

+0

这里有一个关于如何删除表中的行http://codepedia.info/remove-table-row-tr-in-jquery/ –

回答

33
$(buttonSelector).live ('click', function() 
{ 
    $(this).closest ('tr').remove(); 
} 
); 

使用.live绑定你的事件将自动绑定它时动态添加的行。

编辑

live现在已经过时,因为1.7版本,我认为。

现在要走的路是使用on而不是live

$('#tableid').on('click', buttonSelector, function(){ 
    $(this).closest ('tr').remove(); 
}); 

查看doc

+0

关于最接近:http: //api.jquery.com/closest/ – Johnny5

+1

+1,这是一种更干净的方式... –

+3

哇,我每天都会学到新的东西。我不知道有一个最接近的功能。好贴。 –

2

您可以使用此代码删除包含点击按钮父行:

$(myButtonSelector).click(function(){ 
    $(this).parents('tr').first().remove(); 
}); 

对于一个活生生的例子看this link

欲了解更多信息,请参阅this article

+0

如果按钮的详细文章是'​​'这会删除单元格,而不是行。 – Johnny5

+0

钮是这样创建的:\t \t \t \t \t '​​' + '<输入类= “class_button_remove” ID = “id_button_' +计数+ '”' + '型= “按钮” 值= “删除”>' + '',我想这一点,=> $( 'TD input.class_button_remove')点击(函数(){ \t \t \t \t \t $(本).parent()除去(); \t \t \t \t }); ,这不起作用, – prime

+0

该按钮是在​​,那么我该如何删除行,而不是td? – prime

1

你可以这样做:

$('.add').click(function(){ 
$("#tableid tbody:last").append('<tr><td>Hi</td><td><a class="remove">Remove</a>'); 
}); 

$('.remove').live('click',function(){console.log($(this).parent().parent().remove())}); 
相关问题