Dom7 — это лёгкая библиотека для работы с DOM в JavaScript, которая предоставляет удобный, цепочный API, похожий на jQuery, но оптимизированный под мобильные приложения и фреймворк Framework7. Основные функции Dom7 включают выбор элементов, манипуляции с ними, обработку событий и работу с атрибутами и классами.
Для выбора элементов используется функция $, которая
принимает CSS-селектор, HTML-элемент или массив элементов:
const el = $('.my-class'); // выбор по классу
const firstDiv = $('div').eq(0); // первый div на странице
Метод eq(index) возвращает элемент по индексу. Dom7
поддерживает цепочки вызовов, что позволяет комбинировать действия:
$('.item').addClass('active').css('color', 'red');
Dom7 предоставляет удобные методы для работы с классами элементов:
addClass(className) — добавление класса;removeClass(className) — удаление класса;toggleClass(className) — переключение класса;hasClass(className) — проверка наличия класса.Пример:
const button = $('.btn');
button.addClass('highlight');
if (button.hasClass('highlight')) {
button.removeClass('highlight');
}
Методы для работы с атрибутами и свойствами элементов:
attr(attributeName) — получение значения атрибута;attr(attributeName, value) — установка значения;removeAttr(attributeName) — удаление атрибута;prop(propertyName) — получение свойства;prop(propertyName, value) — установка свойства.Пример:
const link = $('a');
link.attr('href', 'https://example.com');
console.log(link.attr('href')); // 'https://example.com'
link.removeAttr('target');
text() — получение текста элемента;text(value) — установка текста;html() — получение HTML-контента;html(value) — установка HTML-контента.Пример:
const content = $('#content');
content.text('Новый текст');
content.html('<strong>Жирный текст</strong>');
Dom7 позволяет вставлять элементы в DOM различными способами:
append(element) — добавление внутрь элемента;prepend(element) — добавление в начало;before(element) — добавление перед элементом;after(element) — добавление после элемента;replaceWith(element) — замена элемента.Пример:
$('.list').append('<li>Новый элемент</li>');
$('.list').prepend('<li>Первый элемент</li>');
remove() — удаление элемента из DOM;empty() — удаление всех дочерних элементов.Пример:
$('.old-item').remove();
$('#container').empty();
Методы для перемещения между элементами:
parent() — родительский элемент;parents(selector) — все родительские элементы,
соответствующие селектору;closest(selector) — ближайший родитель, соответствующий
селектору;children(selector) — дочерние элементы;siblings(selector) — соседние элементы.Пример:
const parent = $('.child').parent();
const closestSection = $('.child').closest('section');
const siblings = $('.child').siblings();
Dom7 позволяет получать и задавать размеры и положение элементов:
width() / height() — ширина и высота;outerWidth(includeMargins) /
outerHeight(includeMargins) — ширина и высота с учётом
padding, border и margin;offset() — координаты относительно документа;position() — координаты относительно родителя.Пример:
const box = $('.box');
console.log(box.width());
console.log(box.offset());
Dom7 упрощает работу с событиями:
on(event, handler) — добавление обработчика;off(event, handler) — удаление обработчика;once(event, handler) — одноразовое событие;trigger(eventName) — вызов события.Пример:
$('.btn').on('click', function () {
console.log('Кнопка нажата');
});
$('.btn').off('click');
События можно делегировать, передавая селектор дочерних элементов:
$('#list').on('click', '.item', function () {
console.log('Элемент списка нажат');
});
Все методы Dom7 поддерживают цепочки вызовов, что позволяет строить компактный код:
$('.item')
.addClass('active')
.css('color', 'blue')
.append('<span>Новый текст</span>')
.on('click', function () {
console.log('Элемент нажат');
});
Кроме работы с DOM, Dom7 предоставляет вспомогательные функции:
each(callback) — итерация по элементам;filter(selector) — фильтрация элементов;map(callback) — создание массива результатов;toArray() — преобразование коллекции в массив.Пример:
$('.item').each(function (index, el) {
console.log(index, el);
});
const texts = $('.item').map((el) => el.textContent).toArray();
Dom7 оптимизирован для мобильных устройств и фреймворка Framework7, использует нативные методы DOM и минимизирует лишние операции. Это делает его лёгкой альтернативой jQuery, особенно для мобильных приложений.
В совокупности, все методы Dom7 позволяют полностью управлять DOM: выбор, манипуляции, события, навигация, размеры, атрибуты и утилиты для удобной работы с элементами. Каждая операция возвращает объект Dom7, что обеспечивает гибкость и удобство в построении цепочек вызовов.