Библиотека Cash предоставляет удобный и лаконичный API для работы с DOM, аналогичный jQuery, но с меньшим весом и высокой производительностью. Одной из ключевых возможностей является замена элементов на странице, что позволяет динамически управлять структурой документа.
.replaceWith()Метод .replaceWith() позволяет заменить выбранные
элементы новыми. Синтаксис метода:
$(селектор).replaceWith(новыйЭлемент);
Параметры:
новыйЭлемент — строка с HTML-кодом, DOM-элемент или
функция, возвращающая новый элемент.Примеры использования:
// Заменяем все параграфы на div с текстом
$('p').replaceWith('<div>Новый элемент</div>');
// Используем функцию для динамической замены
$('p').replaceWith(function(index, oldHtml) {
return `<div>Элемент ${index}: ${oldHtml}</div>`;
});
В функции доступны два аргумента: index — порядковый
номер элемента в наборе, и oldHtml — HTML содержимое
исходного элемента.
Можно передавать напрямую DOM-элементы или элементы Cash:
const newElement = document.createElement('span');
newElement.textContent = 'Новый span';
$('p').replaceWith(newElement);
Cash автоматически обработает передачу Node или коллекции узлов, что позволяет интегрировать сторонние элементы без необходимости конвертации в HTML-строку.
.replaceAll()Метод .replaceAll() — зеркальный аналог
.replaceWith(), но позволяет выбрать элементы, которые
заменят текущий набор.
$(новыйЭлемент).replaceAll(селектор);
Пример:
$('<div>Замена</div>').replaceAll('p');
В этом случае все элементы p будут заменены на созданный
<div>.
.replaceWith() и .replaceAll().replaceWith() вызывается на старых элементах и
заменяет их..replaceAll() вызывается на новых элементах и
распространяет их на выбранные старые элементы.Эти методы обеспечивают гибкость при динамическом формировании контента, особенно при работе с шаблонами и компонентами.
Cash позволяет сохранять обработчики событий при
замене элементов через метод .replaceWith(), если
передавать элемент Cash вместо HTML-строки:
const button = $('<button>Клик</button>');
button.on('click', () => alert('Нажато'));
$('p').replaceWith(button);
В этом случае обработчик click не теряется, что важно
при создании интерактивных интерфейсов.
Методы замены поддерживают цепочку вызовов, что упрощает код и делает его более читаемым:
$('p')
.replaceWith('<div>Заменено</div>')
.css('color', 'red')
.fadeIn();
В примере сначала выполняется замена, затем применение CSS и анимации к новому элементу.
.replaceWith()..replaceWith() с Node или объектом Cash..replaceAll() хорошо подходит для создания шаблонов,
которые нужно «нанести» на множество элементов на странице.Методы замены элементов в Cash являются мощным инструментом для динамического управления DOM, сочетая лаконичность кода и высокую производительность.