Если я правильно понимаю ваши требования, я переписал бы часть вашего кода, используя метод jQuery .detach()
.Он позволяет вам хранить элементы, которые вы обычно удаляете, в переменную, чтобы потом их можно было снова вставить обратно в DOM.
Вы по-прежнему сможете взаимодействовать с отсоединенными элементами как обычноjQuery объекты, но вы не увидите их на странице.
Вот пример:
<script>
$(function(){
var detachedInput = '';
var detachedBtn = '';
$('#preview').click(function(){
// store elements for later use
detachedInput = $('#input').detach();
detachedBtn = $(this).detach();
// whatever you're trying to do with the output
//...this is just an example, and not a very good one at that
$('body').html($(detachedInput).val());
$('<button>Edit</button>').appendTo('body')
.click(function(){
$('body').empty()
.append(detachedInput)
.append(detachedBtn);
});
});
});
</script>
<input id='input' />
<button id='preview'>Preview</button>
Как примечание, публикация некоторого кода обычно помогает, так как это дает всем лучшеепредставление о том, что вы пытаетесь сделать.