Библиотека Cash — это лёгкий аналог jQuery,
предоставляющий удобные методы для работы с DOM в современном
JavaScript. Одной из часто используемых операций при работе с DOM
является проверка наличия определённого CSS-класса у элемента. Cash
предоставляет для этого специализированный метод
.hasClass(), который позволяет быстро и
эффективно определить, присутствует ли класс на выбранных элементах.
.hasClass()Синтаксис:
$(selector).hasClass(className)
selector — CSS-селектор или DOM-элемент, который нужно
проверить.className — строка с именем класса, наличие которого
проверяется.Возвращаемое значение: Метод возвращает булево значение:
true, если хотя бы один элемент в выборке содержит
указанный класс;false, если ни один элемент не содержит класс.Пример использования:
const hasActive = $('#menu-item').hasClass('active');
console.log(hasActive); // true или false
В этом примере метод проверяет, содержит ли элемент с идентификатором
menu-item класс active.
Cash поддерживает работу с коллекциями элементов. Если выборка
содержит несколько элементов, .hasClass()
возвращает true, если хотя бы один из элементов содержит
указанный класс.
const items = $('.list-item');
if (items.hasClass('selected')) {
console.log('Есть выбранные элементы');
} else {
console.log('Выбранных элементов нет');
}
Таким образом, метод позволяет быстро проверять наличие класса у множества элементов без необходимости проходить через цикл вручную.
classList.containsВ стандартном JavaScript для проверки класса используется:
element.classList.contains('classname');
Основные различия при использовании Cash:
.hasClass()
применим к набору элементов сразу, возвращая единый результат.Динамическая проверка перед добавлением класса:
const button = $('#submit-btn');
if (!button.hasClass('disabled')) {
button.addClass('disabled');
}
В данном примере класс disabled добавляется только если
его ещё нет у кнопки, предотвращая дублирование и некорректное состояние
интерфейса.
Проверка и управление группой элементов:
const tabs = $('.tab');
tabs.each(function() {
if ($(this).hasClass('active')) {
console.log('Активная вкладка:', $(this).text());
}
});
Метод .each() позволяет перебрать все элементы
коллекции, а .hasClass() определить, какой из них
активен.
Проверка наличия класса может использоваться в условных операторах для динамического управления интерфейсом:
const menu = $('#main-menu');
menu.on('click', function() {
if ($(this).hasClass('open')) {
$(this).removeClass('open');
} else {
$(this).addClass('open');
}
});
Такой подход удобен для создания переключателей состояния элементов.
.hasClass()true, если хотя бы один элемент содержит
класс..addClass(), .removeClass() и
.toggleClass().classList.contains, особенно при работе с коллекциями.Метод .hasClass() является ключевым инструментом при
построении динамического интерфейса с Cash, позволяя эффективно
контролировать состояния элементов на странице и реализовывать условную
логику.