也许我在这里缺少一些额外的信息,但为什么要完全删除它?有什么理由你不能只使用hide
和show
?
附加的问题是您将元素作为最后一个添加到父级.如果由于某种原因你真的必须完全删除元素,你可以在其位置放置某种占位符.也许带有replaceWith
一些不可见的元素,以后会再用原始元素替换掉.
或者,您可以跟踪最近的兄弟姐妹并使用insertBefore
或insertAfter
.
编辑:一个例子insertAfter
:
var image = jQuery(".image");
var prev;
jQuery("#remove").click(function(){
prev = image.prev();
image.remove();
});
jQuery("#append").click(function(){
if(prev.length === 0){
// element was first
jQuery("#container").prepend(image);
}else{
image.insertAfter(prev);
}
})
Run Code Online (Sandbox Code Playgroud)
EDIT2:示例replaceWith
:
var image = jQuery(".image");
var replacement = $("<div></div>");
jQuery("#remove").click(function(){
image.replaceWith(replacement);
});
jQuery("#append").click(function(){
replacement.replaceWith(image);
})
Run Code Online (Sandbox Code Playgroud)