Umbrella JS — это лёгкая библиотека для работы с DOM, ориентированная на удобное и лаконичное манипулирование элементами страницы. Одной из ключевых возможностей является выборка элементов по классам, что позволяет быстро получать коллекции узлов для дальнейшей работы.
Основной метод для выборки элементов — вызов функции u()
с CSS-селектором. Для поиска элементов по классу используется точка
(.) перед именем класса:
u('.example')
Здесь '.example' — это селектор CSS, и результатом будет
объект Umbrella, содержащий все элементы с классом example.
Этот объект обладает методами для работы с множественными элементами
одновременно.
Возвращаемый объект Umbrella позволяет перебирать все выбранные элементы, применять к ним изменения стилей, атрибутов, обработчики событий и другие методы:
u('.highlight').css('color', 'red');
В данном примере все элементы с классом highlight будут
окрашены в красный цвет. При этом нет необходимости отдельно проходить
по каждому элементу через for или forEach.
Umbrella JS предоставляет методы addClass() и
removeClass() для управления классами элементов:
u('.item').addClass('active');
u('.item').removeClass('inactive');
Методы автоматически применяются ко всем выбранным элементам, что
упрощает работу с группами элементов. Можно также использовать
toggleClass() для переключения состояния класса:
u('.menu').toggleClass('open');
Метод hasClass() позволяет проверить, содержит ли хотя
бы один из выбранных элементов определённый класс:
if (u('.button').hasClass('disabled')) {
console.log('Кнопка недоступна');
}
Метод возвращает true, если хотя бы один элемент из
коллекции имеет указанный класс, и false в противном
случае.
Umbrella JS поддерживает комбинированные селекторы, что позволяет выбирать элементы с определённым классом внутри конкретного контейнера:
u('#container .item');
В этом примере выбираются все элементы с классом item,
которые находятся внутри элемента с идентификатором
container. Это особенно удобно для работы с вложенными
структурами DOM.
Для работы с ограниченной областью можно использовать метод
find() на уже выбранных элементах:
u('#list').find('.active');
Здесь поиск будет выполнен только внутри элемента #list.
Это обеспечивает точный контроль над областью действия и предотвращает
случайное воздействие на элементы за пределами контейнера.
Хотя Umbrella JS возвращает объект, похожий на коллекцию, иногда
требуется получить настоящий массив DOM-элементов. Для
этого используется метод toArray():
const elements = u('.card').toArray();
elements.forEach(el => console.log(el.innerText));
Это удобно для интеграции с нативными методами JavaScript или сторонними библиотеками.
Выборка по классу в Umbrella JS использует нативные методы
querySelectorAll, что обеспечивает высокую скорость. Для
больших DOM-деревьев рекомендуется ограничивать область поиска,
используя контейнеры или комбинированные селекторы, чтобы минимизировать
количество обрабатываемых элементов.
Можно комбинировать выборку по классу с другими методами Umbrella JS для комплексных действий:
u('.todo-item')
.filter('.completed')
.css('text-decoration', 'line-through')
.addClass('archived');
Здесь последовательность методов позволяет выбрать элементы с классом
todo-item, которые одновременно имеют класс
completed, применить к ним стили и добавить дополнительный
класс.
Выборка по классу напрямую интегрируется с обработкой событий:
u('.btn').on('click', function() {
u(this).toggleClass('active');
});
Метод on() позволяет назначить обработчики на все
выбранные элементы, а this внутри функции ссылается на
текущий DOM-элемент.
u('.className').addClass(),
removeClass(), toggleClass().hasClass().find().toArray().on(), с поддержкой
this.Выборка по классу в Umbrella JS обеспечивает компактный и мощный синтаксис для работы с множественными элементами одновременно, сохраняя при этом высокую производительность и удобство интеграции с остальными возможностями библиотеки.