我正在尝试删除我网站的某个区域,因为我想再次使用它,这就是我在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()?但是我没有让它工作我想要的。
我的代码删除了我的内容,但我不知道如何取回它。 有什么帮助吗?
答案 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
});