如何通过分离删除信息?

时间:2011-10-26 21:23:58

标签: javascript jquery detach

我正在尝试删除我网站的某个区域,因为我想再次使用它,这就是我在HTML中编码的内容

<div id="container">
 <p>Hello</p> 
</div>
<div id="containerShow"></div>

<a href="#" id="remove">Remove</a> | <a href="#" id="show">Show</a>

这是我的Jquery

$("#remove").click(function(){   
   $("#container").detach();
});

$("#show").click(function(){   
   $("#container").detach().appendTo("#containerShow");
});

当点击“删除”链接时,应该删除div容器,并在点击“显示”链接时返回相同的信息 我知道这看起来非常简单,但jquery关于分离的文档很混乱http://api.jquery.com/detach/我想要一个简单的方法来做到这一点,我也在这里找到了这篇文章How to I undo .detach()?但是我没有让它工作我想要的。

我的代码删除了我的内容,但我不知道如何取回它。 有什么帮助吗?

2 个答案:

答案 0 :(得分:1)

您已经获得了使用detach无法获取元素的原因的答案,但是您示例中描述的问题的简单解决方案是使用hide和{ {1}}:

appendTo

这是有效的,因为appendTo将移动一个元素(如果它已经存在于DOM中(在这种情况下它仍然存在,因为$("#remove").click(function(){ $("#container").hide(); }); $("#show").click(function(){ $("#container").appendTo("#containerShow"); }); 只是隐藏它,而不是实际删除它)。它还消除了对可能的全局变量存储分离元素的需要。

如果hide没有做任何事情,除了提供放回内容的地方,你可以摆脱它而只是使用#containerShow

show

答案 1 :(得分:0)

你必须把它放在某处,即在一个变量中:

var element;

$("#remove").click(function(){   
   element = $("#container").detach(); // detach and store in variable
});

$("#show").click(function(){   
   element.appendTo("#containerShow"); // restore stored element
});