Когда вы добавляете элемент, дайте ему имя
var newElement = $('<span>Some new stuff</span>');
$('.whatever').after(newElement);
Затем, когда вы хотите изменить его, просто сначала удалите предыдущий
newElement.remove();
newElement = $('<div>And now for something completely different</div>');
$('.whatever').after(newElement);
Вы можете написать функцию, которая использует .data()
для запоминания нового элемента как такового: (хотя я бы немного изменил имена)
$.fn.addUniqueSomething = function (content) {
var existing = this.data('something-that-was-already-added');
if (existing) {
existing.remove();
}
var something = $(content);
this.after(something);
this.data('something-that-was-already-added', something);
};
Тогда вы можете использовать
$('.whatever').addUniqueSomething('<span>Some new stuff</span>');
// and later...
$('.whatever').addUniqueSomething('<div>And now for something completely different</div>');
А второй заменит первый