Dom7 представляет собой небольшую и эффективную библиотеку для работы с DOM, вдохновлённую подходами jQuery, но значительно легче по размеру и ориентированную на современные окружения Javascript. Используется в проектах типа Framework7 и служит вспомогательным инструментом для более лаконичного управления элементами, событиями и атрибутами без громоздкой обвязки.
Библиотека основана на минимализме. Главный объект — функция
Dom7(), которая возвращает коллекцию элементов DOM с
набором методов для манипуляций. Вызов напоминает jQuery:
const $$ = Dom7;
$$('div').addClass('active');
Коллекции Dom7 не являются массивами в строгом смысле, но имеют похожие свойства и позволяют выполнять цепочки вызовов.
Поддерживаются CSS-селекторы и прямые DOM-объекты.
Пример выбора по селектору:
const items = $$('li.item');
Пример выбора из DOM-узла:
const node = document.getElementById('root');
const section = $$(node);
Все результаты представляют собой объект Dom7, что даёт доступ к функциональному интерфейсу: классы, атрибуты, события, анимация, навигация по DOM и преобразование коллекций.
Dom7 предлагает методы addClass,
removeClass, toggleClass,
hasClass.
Ключевые особенности:
$$('.menu').addClass('expanded').removeClass('collapsed');
Методы attr, removeAttr, prop,
data облегчают взаимодействие с атрибутами.
Пример установки атрибута:
$$('input').attr('disabled', true);
Получение значения:
const type = $$('input').attr('type');
data() работает с dataset, обеспечивая
удобный доступ к пользовательским данным.
Библиотека позволяет изменять HTML, текст и вставлять элементы.
Методы:
html() — установка или получение HTML.text() — текстовый контент.append(), prepend(),
before(), after() — добавление элементов.empty() — очистка содержимого.remove() — удаление элементов из DOM.$$('.container').append('<span class="badge">New</span>');
Метод css() реализует как получение значения стиля, так
и установку.
$$('.box').css('width', '200px');
Поддерживает передачу объекта, что облегчает массовые обновления:
$$('.box').css({
width: '200px',
height: '100px',
display: 'block'
});
Dom7 предоставляет методы для перемещения относительно выбранных элементов:
parent(), parents()children()find()closest()siblings()next(), prev()Эти операции формируют новые коллекции Dom7 и могут объединяться в цепочки.
$$('.item').closest('.list').addClass('active-list');
Система событий основана на методах on,
off, once, trigger.
Пример подписки:
$$('.button').on('click', (event) => {
// обработка нажатия
});
Особенности:
Dom7 используется в экосистемах, где анимации выполняются через
CSS-переходы. Для упрощения предусмотрены методы
transitionEnd() и animationEnd() для
корректного отслеживания завершения.
$$('.card').transitionEnd(() => {
// завершение анимации
});
Встроенные методы Ajax отсутствуют, что отличает Dom7 от jQuery.
Предпочтение отдаётся современным API вроде fetch(),
поэтому библиотека фокусируется исключительно на DOM-манипуляциях.
Дополнительные утилиты включают:
each() для итераций.map() для преобразований.filter() и is() для проверки
селекторов.eq() для выборки элемента по индексу.toArray() для получения массива DOM-узлов.$$('li').filter((el) => el.classList.contains('active'));
Dom7 ориентирован на браузерную среду и тесно интегрируется с современным стеком, включая Web Components, модульные сборки, SPA-фреймворки. Минимализм и отказ от устаревших API способствуют снижению размера и повышению производительности.
Приоритеты:
Разработка с Dom7 не требует дополнительных панелей или плагинов. Основной инструмент — консоль браузера. Важно понимать, что объект Dom7 отображается как коллекция узлов, и стандартные средства Chrome/Firefox позволят инспектировать содержимое, отслеживать события и проверять изменения стилей.
Особые моменты отладки:
Интеграция с современными сборщиками позволяет легко отслеживать размеры бандла и оптимизировать дерево импортов. Возможность минификации и tree-shaking избавляет от лишнего кода, сохраняя производительность.
Dom7 часто используется вместе с Framework7 в мобильных и десктопных приложениях. Лёгкий API позволяет объединять обычный DOM, WebView, гибридные решения и компоненты UI-фреймворков.
Библиотека подходит для проектов, где важна компактность, предсказуемость и контроль над DOM без перегрузки зависимостями.