Umbrella JS — лёгкая библиотека для работы с DOM, предоставляющая компактный и удобный синтаксис для выборки элементов и их массовой обработки. Одной из ключевых возможностей библиотеки являются пакетные операции, которые позволяют выполнять действия над множеством элементов одновременно, минимизируя количество кода и повышая читаемость.
Выборка элементов в Umbrella JS выполняется через функцию
u(), которая возвращает объект-обёртку над коллекцией
DOM-элементов. Этот объект поддерживает цепочки
вызовов, что облегчает применение нескольких операций к набору
элементов.
u('div.item').addClass('highlight').attr('data-active', 'true').css('color', 'red');
В этом примере все div с классом item
получают класс highlight, атрибут data-active
со значением 'true' и красный цвет текста.
Особенность цепочек: каждая операция применяется сразу ко всей коллекции элементов, а методы возвращают ту же коллекцию для дальнейшей обработки.
Umbrella JS предоставляет методы для пакетного управления классами:
addClass(className) — добавляет класс ко всем элементам
коллекции.removeClass(className) — удаляет класс.toggleClass(className) — переключает наличие
класса.hasClass(className) — проверяет, есть ли класс хотя бы
у одного элемента коллекции.Пример:
u('.menu-item').addClass('active').removeClass('disabled');
Все элементы с классом menu-item становятся активными и
одновременно теряют класс disabled.
Методы attr и prop позволяют изменять или
получать значения атрибутов и свойств DOM:
// Установка атрибутов
u('input[type="text"]').attr('placeholder', 'Введите текст');
// Получение атрибутов
let values = u('input[type="text"]').attr('placeholder');
При указании двух аргументов (ключ,
значение) атрибут устанавливается для всех элементов
коллекции. Если указан только ключ, метод возвращает значение атрибута
первого элемента коллекции.
Метод css обеспечивает пакетное изменение стилей:
u('p').css({
'font-size': '16px',
'line-height': '1.5',
'color': '#333'
});
Поддерживается как установка одного свойства, так и передача объекта с несколькими стилями. Для получения значения стиля используется вызов с одним аргументом:
let color = u('p').css('color');
Методы html, text, val
позволяют управлять содержимым элементов:
html(content) — задаёт или получает
HTML-содержимое.text(content) — задаёт или получает текстовое
содержимое.val(value) — задаёт или получает значение элемента
формы.Примеры пакетного изменения содержимого:
u('div.note').html('<strong>Важно:</strong> Обновлено');
u('span.label').text('Новый статус');
u('input[type="text"]').val('Введите данные');
Umbrella JS позволяет добавлять, удалять и перемещать элементы в DOM:
append(content) — добавляет содержимое внутрь каждого
элемента коллекции.prepend(content) — добавляет в начало содержимого.before(content) и after(content) —
вставляют элементы перед или после текущих элементов.remove() — удаляет все элементы коллекции из DOM.Пример пакетного добавления элементов:
u('ul.menu').append('<li class="menu-item">Новый пункт</li>');
Методы on и off предоставляют механизм
пакетной привязки событий:
u('button.submit').on('click', function() {
u('form').submit();
});
u('button.reset').off('click');
Метод on добавляет обработчик ко всем выбранным
элементам, а off снимает его.
Метод each используется для выполнения произвольной
функции над каждым элементом коллекции:
u('li').each(function(el, index) {
el.textContent = `Пункт ${index + 1}`;
});
Параметры функции: текущий элемент и его индекс. Это особенно удобно для пакетных операций, не покрываемых встроенными методами.
dataМетоды data и removeData упрощают работу с
пользовательскими атрибутами:
u('div.card').data('id', 123).data('role', 'admin');
let role = u('div.card').data('role');
u('div.card').removeData('id');
Все операции выполняются одновременно для всех элементов коллекции, поддерживая пакетную логику.
Методы filter и not позволяют выделить
подмножества элементов:
u('li').filter('.active').css('font-weight', 'bold');
u('li').not('.active').css('opacity', '0.5');
filter оставляет только элементы, удовлетворяющие
условию, а not исключает их из коллекции.
each
даёт полный контроль над элементами при необходимости.Пакетные операции делают Umbrella JS мощным инструментом для краткой и выразительной работы с множеством элементов, обеспечивая лёгкую замену громоздких циклов и стандартного DOM API.