Библиотека Cash предоставляет удобные методы для работы с DOM, включая быстрые и эффективные способы очистки содержимого элементов. Очистка содержимого — это удаление всех дочерних узлов выбранного элемента, включая текстовые узлы и вложенные теги, без удаления самого элемента из DOM.
В Cash для этого используется метод:
$(selector).empty();
Особенности метода empty:
Пример:
const container = $('#content');
container.empty();
// В контейнере #content больше нет дочерних элементов
empty() от
html('')Метод html('') также очищает содержимое элемента:
$('#content').html('');
Различия:
empty() гарантирует удаление всех дочерних
узлов, включая текстовые узлы и комментарии.html('') работает через замену внутреннего HTML и может
быть немного медленнее при больших деревьях DOM.empty() также автоматически вызываются события
remove для дочерних элементов, если они были привязаны
через Cash.Cash позволяет работать с коллекцией элементов. При вызове
empty() на множественном селекторе каждый элемент коллекции
очищается:
$('.item-list').empty();
В этом примере каждый элемент с классом .item-list будет
очищен, при этом сами элементы останутся в DOM.
Часто перед добавлением нового динамического содержимого требуется очистка контейнера. Например:
const items = ['яблоко', 'банан', 'вишня'];
const list = $('#fruit-list');
list.empty(); // очистка перед добавлением
items.forEach(item => {
list.append(`<li>${item}</li>`);
});
Метод empty() гарантирует, что при вставке нового списка
старые элементы не останутся в DOM, что предотвращает дублирование и
утечки памяти.
Важно учитывать, что при использовании empty():
on, они будут удалены вместе с элементами.Пример:
$('#container').on('click', '.child', () => console.log('Clicked'));
$('#container').empty(); // дочерние элементы удалены, обработчик к контейнеру сохраняется
Если требуется полностью удалить элемент из DOM вместе с его
содержимым, используется метод remove():
$('#container').remove();
В отличие от empty(), remove() удаляет сам
элемент и освобождает память, освобождая связанные с ним обработчики
событий и данные.
Cash поддерживает цепочку вызовов, что позволяет сочетать очистку с другими манипуляциями:
$('#content')
.empty()
.append('<p>Новый текст</p>')
.css('color', 'blue');
Такой подход повышает читаемость кода и уменьшает количество промежуточных переменных.
Метод empty() — это базовый инструмент для очистки
содержимого элементов в Cash. Он обеспечивает:
Эффективное использование empty() позволяет создавать
динамичные интерфейсы без лишнего кода и риска утечек памяти.