Umbrella JS предоставляет удобный и лаконичный способ работы с DOM-элементами, включая управление классами. Одним из часто используемых сценариев является замена одного класса на другой, что позволяет динамически изменять стили элементов без необходимости вручную управлять списком классов.
replaceClassВ Umbrella JS для замены классов используется метод
replaceClass. Его основная задача — заменить у выбранных
элементов один CSS-класс на другой.
Синтаксис:
u(selector).replaceClass(oldClass, newClass)
selector — CSS-селектор, определяющий набор элементов
для работы.oldClass — имя класса, который необходимо удалить.newClass — имя класса, который необходимо
добавить.Метод возвращает объект Umbrella JS, что позволяет продолжать цепочку
вызовов (chaining).
Пример использования:
u('.button').replaceClass('btn-primary', 'btn-success');
В этом примере все элементы с классом button, у которых
присутствует btn-primary, будут заменены на
btn-success.
u('li.item').replaceClass('inactive', 'active');
Все элементы <li> с классом item,
имеющие класс inactive, получат класс
active.
Существование нового класса Если новый класс уже
присутствует у элемента, метод не создаёт дубликатов. Замена выполняется
корректно и не нарушает структуру classList.
Отсутствие старого класса Если у элемента
отсутствует oldClass, метод просто добавляет
newClass. Это позволяет избегать дополнительных проверок
перед заменой.
Umbrella JS поддерживает цепочку вызовов, что делает работу с классами гибкой. Например:
u('.tab').replaceClass('active', 'inactive').addClass('highlight');
Сначала происходит замена класса active на
inactive, а затем добавляется класс
highlight.
Также возможно использовать вместе с методами фильтрации элементов:
u('.menu-item').filter(':first-child').replaceClass('hidden', 'visible');
В этом случае замена класса произойдет только для первого элемента из выбранного набора.
Метод replaceClass фактически использует стандартные
свойства DOM — classList.remove() и
classList.add(). Благодаря этому:
Пример демонстрации внутренней работы:
u('.card').each(function(el) {
el.classList.remove('collapsed');
el.classList.add('expanded');
});
Метод replaceClass выполняет то же самое, но в одну
строку.
u('.switch').replaceClass('off', 'on');
Используется для реализации переключателей или динамических кнопок.
u('body').replaceClass('light-theme', 'dark-theme');
Позволяет переключать визуальные темы на сайте без перезагрузки страницы.
u('.notification').replaceClass('slide-out', 'slide-in');
Смена классов запускает CSS-анимацию или переход между состояниями элемента.
hasClass.replaceClass,
addClass и removeClass могут комбинироваться,
создавая компактный и читаемый код.Метод replaceClass делает управление состояниями
элементов интуитивным, сокращает код и полностью интегрируется с
философией Umbrella JS — простота и лаконичность.