【问题标题】:jQuery .remove delete all "tr"jQuery .remove 删除所有“tr”
【发布时间】:2014-02-20 20:22:57
【问题描述】:

我需要一些关于“.remove”的 jQuery 帮助。我用“.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;               
});

我能做什么? 谢谢你:)

【问题讨论】:

    标签: jquery append closest removeall


    【解决方案1】:

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

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

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

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-01-11
    • 1970-01-01
    • 1970-01-01
    • 2012-04-16
    • 2013-10-06
    • 1970-01-01
    • 2014-01-15
    相关资源
    最近更新 更多