jQuery .remove删除所有“tr”

时间:2014-01-29 06:57:52

标签: jquery append closest removeall

我在jQuery中需要一些帮助“.remove”。我用“.append”

在表格中创建了新的“tr”
$("#myinput").keypress(function(e){
    if(e.keyCode==13){
        $('#mytable tbody:last').append("<tr><td></td><td><a id='delete' href='' >X</a></td></tr>");
        return false;
    }
});

当我添加许多“tr”并尝试删除其中一个时,它会删除所有“tr”。

$("#mytable #delete").on("click",function() {
    $(this).closest("tr").remove();
    return false;               
});

我能做什么? 谢谢:))

1 个答案:

答案 0 :(得分:0)

您需要动态添加元素的事件委派。事件绑定代码执行tr的时间不存在,并且使用事件委托将在添加tr时绑定事件。

$("#mytable").on("click", "#delete", function() {
    $(this).closest("tr").remove();
    return false;               
});
  

委派事件的优势在于它们可以处理来自的事件   稍后添加到文档中的后代元素。通过   选择一个保证在当时存在的元素   委托事件处理程序附加,您可以使用委托事件   避免频繁附加和删除事件处理程序jQuery doc