Может быть, здесь есть какая-то дополнительная информация, которую я пропускаю, но зачем ее полностью удалять?Есть ли причина, по которой вы не можете просто использовать hide
и show
?
http://jsfiddle.net/Zt9tZ/10/
Проблема с добавлением заключается в том, что вы добавляете элемент как последний к родительскому элементу,Если по какой-то причине вам действительно нужно полностью удалить элемент, вы можете поместить на его место какой-то заполнитель.Возможно, с 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);
}
})
http://jsfiddle.net/Zt9tZ/12/
EDIT2: Пример replaceWith
:
var image = jQuery(".image");
var replacement = $("<div></div>");
jQuery("#remove").click(function(){
image.replaceWith(replacement);
});
jQuery("#append").click(function(){
replacement.replaceWith(image);
})
http://jsfiddle.net/Zt9tZ/13/