【问题标题】:How to Restore an Element Removed with jQuery?如何恢复使用 jQuery 删除的元素?
【发布时间】:2010-02-20 07:20:57
【问题描述】:

如果一个元素被删除了

$('.notification').remove();

我们如何创建它。

【问题讨论】:

    标签: jquery jquery-ui jquery-plugins


    【解决方案1】:

    你无法找回那个特定的实例。使用 $.remove() 会将其从 DOM 中删除。不过,您可以创建它的克隆、在 DOM 中移动它、隐藏它等等。根据您的项目需要,您可能还有许多其他选择。

    如果您对该特定实例不太感兴趣,可以创建一个新实例。假设这是一个带有声明的 div:

    $("<div />").addClass("notification").text("I exist!").appendTo("body");
    

    如果您想保留该特定元素的副本,可以$.clone() 并删除原始元素:

    var clone = $(".notification").clone(); // making zeh' clones!
    $(".notification").remove();            // original is gone
    $("body").append(clone);                // appears to have returned
    

    【讨论】:

    • 嗨乔纳森,你的意思是我可以使用$.remove()$("&lt;div /&gt;").addClass("notification").text("I exist!").appendTo("body"); 这个statemnet 对吗?
    • @Hulk:我是说你可以删除元素,然后再创建新元素。是的。
    【解决方案2】:

    查看 jQuery 1.4 方法 .detach()。它允许您从 DOM 中“删除”元素并保存它们,以便以后重新插入。

    【讨论】:

      【解决方案3】:

      detach() 做了remove() 所做的事情,不同的是 remove 也会取出元素上的任何事件处理程序。只要在某个时刻进行了引用,一个元素就可以被同等地移除或分离,并返回给 DOM

      noti = $('.notification').remove();
      $('body').append( noti ); // later
      

      【讨论】:

        【解决方案4】:

        更简单的方法是使用 .replaceWith() 返回被替换的内容。 什么都不放。

        var backUpReplaced = $('.notification').replaceWith('');    
        

        现在您的元素存储在 var 中,但不在您的页面中

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2017-12-10
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2015-07-08
          • 2011-02-18
          • 1970-01-01
          相关资源
          最近更新 更多