Umbrella JS предоставляет удобный способ выбора элементов DOM с
помощью функции u(), аналогичной jQuery.
u('div'); // выбирает все элементы <div>
u('#id'); // выбирает элемент с указанным id
u('.class'); // выбирает все элементы с указанным классом
Особенности выбора:
Можно передавать сразу несколько селекторов через запятую:
u('div, p');Поддерживается передача NodeList, массива элементов или одного DOM-узла:
u(document.querySelectorAll('span'));
u([document.body, document.head]);
u(document.body);html() и text()Метод html() используется для получения или установки
HTML-содержимого элементов:
u('p').html(); // возвращает HTML первого найденного <p>
u('p').html('<b>Новое содержимое</b>'); // заменяет содержимое всех <p>
Метод text() работает с текстом элементов:
u('p').text(); // возвращает текст первого элемента
u('p').text('Привет'); // устанавливает текст для всех выбранных элементов
val()Метод val() предназначен для работы со значением
<input>, <textarea> или
<select>:
u('input').val(); // получает значение первого input
u('input').val('новое значение'); // устанавливает значение для всех input
append(),
prepend(), before(), after()Методы добавляют новые элементы относительно выбранных:
u('ul').append('<li>Новый элемент</li>'); // в конец каждого <ul>
u('ul').prepend('<li>Первый элемент</li>'); // в начало каждого <ul>
u('ul').before('<h3>Заголовок перед списком</h3>'); // перед <ul>
u('ul').after('<h3>Заголовок после списка</h3>'); // после <ul>
Можно передавать DOM-элементы или массив элементов вместо HTML-строки.
remove()Удаляет выбранные элементы из DOM:
u('.remove-me').remove();
empty()Удаляет содержимое элементов, оставляя сам элемент:
u('#container').empty();
attr()Метод для получения или установки атрибутов:
u('img').attr('src'); // получить src первого <img>
u('img').attr('alt', 'Описание'); // установить alt для всех <img>
prop()Используется для работы с свойствами DOM-элементов:
u('input[type=checkbox]').prop('checked'); // получить состояние чекбокса
u('input[type=checkbox]').prop('checked', true); // установить состояние
data()Метод для работы с data-атрибутами:
u('div').data('id'); // получить значение data-id
u('div').data('id', 123); // установить значение data-id
Методы addClass(), removeClass(),
toggleClass(), hasClass() позволяют гибко
управлять CSS-классами элементов:
u('p').addClass('active'); // добавить класс
u('p').removeClass('active'); // удалить класс
u('p').toggleClass('active'); // переключить класс
u('p').hasClass('active'); // проверить наличие класса, возвращает true/false
css()Метод позволяет получить или установить CSS-свойства:
u('div').css('color'); // получить цвет первого <div>
u('div').css('color', 'red'); // установить красный цвет всем <div>
u('div').css({ background: 'blue', padding: '10px' }); // несколько свойств
on() и off()Метод on() назначает обработчики событий:
u('button').on('click', function(e) {
console.log('Кнопка нажата');
});
Метод off() снимает обработчики:
u('button').off('click');
Поддерживаются множественные события через пробел:
u('input').on('focus blur', function() {
console.log('Элемент в фокусе или потерял фокус');
});
trigger()Метод для программного вызова событий:
u('button').trigger('click');
parent(),
children(), siblings(),
closest()parent() — возвращает родителя каждого элемента.children() — возвращает только прямых потомков.siblings() — возвращает всех соседей элемента.closest(selector) — ищет ближайший родительский
элемент, соответствующий селектору:u('.item').parent();
u('.list').children();
u('.active').siblings();
u('.nested').closest('.container');
each()Позволяет пройтись по всем элементам коллекции:
u('li').each(function(el, i) {
console.log(i, el);
});
filter(), not()filter(selector) — выбирает элементы, соответствующие
селектору.not(selector) — исключает элементы, соответствующие
селектору:u('li').filter('.active');
u('li').not('.active');
width(), height() — возвращают или
устанавливают размеры элементов.offset() — возвращает координаты элемента относительно
документа.position() — возвращает координаты относительно
родителя с позиционированием:u('#box').width();
u('#box').height(100);
u('#box').offset();
u('#box').position();
Umbrella JS поддерживает простые анимации через show(),
hide(), toggle(), fadeIn(),
fadeOut(), slideUp(),
slideDown():
u('#panel').hide();
u('#panel').show();
u('#panel').fadeIn(500);
u('#panel').fadeOut(300);
u('#panel').slideUp(400);
u('#panel').slideDown(400);
Можно задавать продолжительность в миллисекундах и использовать цепочку методов для плавной анимации.
Методы u.ajax() и u.get(),
u.post() позволяют работать с HTTP-запросами:
u.ajax({
url: '/data.json',
method: 'GET',
success: function(res) { console.log(res); },
error: function(err) { console.error(err); }
});
u.get('/data.json', function(res) { console.log(res); });
u.post('/submit', { name: 'John' }, function(res) { console.log(res); });
Особенности:
Umbrella JS поддерживает цепочку методов, что позволяет писать компактный и выразительный код:
u('div')
.addClass('active')
.css('color', 'blue')
.append('<span>Новый текст</span>')
.on('click', function() { console.log('Кликнут div'); });
Каждый метод, изменяющий DOM или атрибуты, возвращает текущую коллекцию элементов, что делает код удобным для последовательных операций.