Umbrella JS предоставляет простой и лаконичный синтаксис для работы с
DOM, включая удаление элементов. В отличие от стандартного JavaScript,
где для удаления элемента требуется сначала получить его родителя, а
затем вызвать removeChild, Umbrella JS позволяет выполнить
это действие одной строкой.
.remove()Основной способ удаления элементов из DOM в Umbrella JS —
использование метода .remove(). Он удаляет все выбранные
элементы из DOM, освобождая память и удаляя их визуальное отображение на
странице.
Синтаксис:
u('селектор').remove();
Пример:
u('.ad-banner').remove();
В этом примере все элементы с классом ad-banner будут
удалены со страницы.
Особенности метода:
u('li').filter('.inactive').remove();
Здесь будут удалены только элементы li с классом
inactive.
Иногда нужно удалить элемент, но сохранить его содержимое в DOM. Для
этого используется метод .unwrap().
Синтаксис:
u('селектор').unwrap();
Пример:
u('.wrapper').unwrap();
В этом случае элемент с классом wrapper будет удалён, но
все его дочерние элементы останутся на месте, «поднявшись» на уровень
выше в DOM.
Umbrella JS позволяет комбинировать методы .each() и
.remove(), чтобы удалять элементы по сложным условиям.
Пример:
u('li').each(function(el, index) {
if(index % 2 === 0) {
u(el).remove();
}
});
В этом примере удаляются все чётные элементы списка li.
Метод .each() перебирает каждый элемент и предоставляет
доступ к нативному DOM-узлу через параметр el.
При работе с элементами, добавленными после загрузки страницы, Umbrella JS сохраняет совместимость с методами удаления. Так как селекторы выполняются в момент вызова, можно удалить новые элементы без дополнительных обработчиков событий:
u('button.add').on('click', function() {
u('<div class="temp">New Item</div>').appendTo('body');
});
u('body').on('click', '.temp', function() {
u(this).remove();
});
Метод .remove() корректно работает даже с динамически
созданными элементами, если к ним обратиться через селектор.
В нативном JavaScript удаление элементов требует:
const adBanners = document.querySelectorAll('.ad-banner');
adBanners.forEach(el => el.parentNode.removeChild(el));
Umbrella JS упрощает этот процесс до одной строки:
u('.ad-banner').remove();
Это снижает вероятность ошибок и делает код более читаемым.
.remove() не изменяет другие элементы DOM и не
затрагивает родительские узлы, кроме удаления выбранных элементов.Umbrella JS предоставляет гибкие и удобные средства для удаления элементов:
.remove() — полное удаление элемента вместе с
содержимым..unwrap() — удаление контейнера при сохранении дочерних
элементов..each() в комбинации с .remove() —
условное удаление элементов.