Dom7 — это легковесная JavaScript-библиотека, создаваемая как компактная замена jQuery, и предназначенная для работы с элементами DOM. Основная цель библиотеки — предоставление удобного интерфейса для выбора элементов, манипуляции с ними и обработки событий с минимальным объёмом кода.
В Dom7 для выборки элементов используется функция $
(аналог jQuery). Она позволяет выбирать элементы по
CSS-селекторам, переданным в качестве строки, или
работать с уже существующими объектами DOM.
Примеры базовой выборки:
// Выбор всех элементов с классом "item"
const items = $('.item');
// Выбор элемента по id
const main = $('#main');
// Выбор всех элементов <p> внутри <div>
const paragraphs = $('div p');
Важно: Dom7 возвращает не обычный массив, а объект типа Dom7, который поддерживает цепочку методов для дальнейшей работы с элементами.
Объект Dom7 ведёт себя как массивоподобная коллекция. Можно использовать индексирование и перебор:
const items = $('.item');
// Доступ к первому элементу
const firstItem = items[0];
// Перебор всех элементов
items.each((index, el) => {
console.log(index, el);
});
Метод each работает аналогично методу
forEach у массивов, но сохраняет цепочку вызовов Dom7.
Dom7 поддерживает практически все CSS-селекторы, включая:
[data-id="123"]:first-child,
:last-of-type.menu li.activeПример:
// Выбор всех активных пунктов меню
const activeMenuItems = $('.menu li.active');
// Выбор всех элементов с атрибутом data-role="button"
const buttons = $('[data-role="button"]');
После первичной выборки можно фильтровать элементы или искать дочерние элементы:
const list = $('.list');
// Фильтрация: оставить только видимые элементы
const visibleItems = list.filter(':visible');
// Поиск дочерних элементов
const childItems = list.find('li');
Методы filter и find возвращают новые
объекты Dom7, что позволяет продолжать цепочку методов.
Dom7 предоставляет удобные методы для навигации по дереву элементов:
parent() — возвращает родительский элементparents(selector) — возвращает всех родителей,
соответствующих селекторуchildren(selector) — возвращает дочерние элементыsiblings(selector) — возвращает соседние элементыclosest(selector) — ищет ближайшего предка по
селекторуПример использования:
const item = $('.item.active');
// Родительский элемент
const parent = item.parent();
// Все родительские элементы с классом "container"
const containers = item.parents('.container');
// Дочерние элементы
const children = item.children('span');
// Ближайший родитель с классом "wrapper"
const wrapper = item.closest('.wrapper');
Dom7 позволяет быстро получить первый элемент коллекции или выполнить действие с каждым элементом:
const first = $('.item').eq(0); // первый элемент
const last = $('.item').eq(-1); // последний элемент
// Выполнение функции для каждого элемента
$('.item').each((index, el) => {
el.textContent = `Элемент ${index + 1}`;
});
Метод eq возвращает объект Dom7 с одним элементом,
сохраняя цепочку методов.
Иногда требуется стандартный массив элементов для работы с нативными методами Jav * aScript:
const itemsArray = $('.item').toArray();
itemsArray.forEach(el => console.log(el.tagName));
Метод toArray() превращает коллекцию Dom7 в обычный
массив DOM-элементов.
Помимо выборки существующих элементов, Dom7 позволяет создавать новые:
const newDiv = $('<div class="new-item">Текст</div>');
$('body').append(newDiv);
Созданный элемент сразу становится объектом Dom7 и поддерживает все методы библиотеки.
Dom7 упрощает работу с выборкой по сравнению с
document.querySelectorAll:
$('.item').find('span').addClass('highlight'))each, filter, mapparent,
children, closest)$ — основной метод для выбора элементов.parent,
children, siblings, closest.eq, each и toArray
обеспечивают гибкость при работе с конкретными элементами.Dom7 позволяет писать компактный и читаемый код для работы с элементами DOM, сохраняя привычный синтаксис jQuery, но с минимальным размером библиотеки и высокой производительностью.