Библиотека Cash предоставляет легковесный и удобный способ работы с DOM, напоминающий jQuery, но с меньшим размером и более высокой производительностью. Одной из сильных сторон Cash является возможность выполнения множественных операций с классами элементов одновременно, что позволяет управлять стилями и состояниями элементов эффективно и компактно.
Метод .addClass() позволяет добавить один или несколько
классов к выбранным элементам. В Cash можно передавать несколько классов
через пробел:
const items = $('.item');
items.addClass('active highlighted large');
В этом примере каждому элементу с классом .item будут
добавлены классы active, highlighted и
large. Метод поддерживает цепочку вызовов,
что позволяет выполнять несколько операций подряд:
$('.item')
.addClass('active')
.addClass('highlighted');
Аналогично работает метод .removeClass() для удаления
нескольких классов:
$('.item').removeClass('active highlighted');
Метод безопасен: если класса нет у элемента, ошибка не возникает, просто ничего не изменяется.
Метод .toggleClass() используется для переключения
классов: если класс присутствует, он удаляется, если отсутствует —
добавляется. Cash позволяет переключать несколько классов
одновременно:
$('.item').toggleClass('active highlighted');
Можно использовать вторым аргументом булево значение для явного управления состоянием:
$('.item').toggleClass('active', true); // добавляет класс, даже если он уже есть
$('.item').toggleClass('highlighted', false); // удаляет класс
Такой подход особенно полезен при управлении состоянием элементов интерфейса, например, при активации вкладок или переключении меню.
Метод .hasClass() позволяет определить, содержит ли
элемент определённый класс. При работе с множественными элементами метод
возвращает true, если хотя бы один элемент содержит
указанный класс:
if ($('.item').hasClass('active')) {
console.log('Есть активные элементы');
}
Для проверки сразу нескольких классов можно использовать комбинацию
.every() и .some() через Cash:
const items = $('.item');
const allHaveActive = items.toArray().every(el => el.classList.contains('active'));
const someHaveHighlighted = items.toArray().some(el => el.classList.contains('highlighted'));
Cash позволяет объединять множественные операции с классами с другими методами, что делает код компактным и выразительным. Например, можно добавить класс и сразу изменить текст:
$('.item')
.addClass('active')
.text('Элемент активирован');
Также можно комбинировать с атрибутами и событиями:
$('.item')
.toggleClass('highlighted')
.attr('data-state', 'updated')
.on('click', () => console.log('Элемент кликнут'));
Методы .addClass(), .removeClass() и
.toggleClass() могут принимать функцию,
которая возвращает имя класса динамически на основе индекса элемента или
текущих данных:
$('.item').addClass((index, currentClass) => {
if (index % 2 === 0) return 'even';
return 'odd';
});
Такой способ особенно удобен для циклического или условного добавления классов, например, для таблиц или списков.
.toArray() и стандартных методов массивов..toggleClass() с булевым аргументом для явного контроля
состояния.Использование множественных операций с классами в Cash делает управление DOM эффективным и лаконичным, позволяя писать более чистый и поддерживаемый код при работе с большими наборами элементов.