Dom7 — это минималистичная библиотека для работы с DOM в JavaScript, созданная как облегчённая альтернатива jQuery. Она предоставляет удобный синтаксис для выбора элементов, управления событиями, изменения структуры DOM и работы с атрибутами.
Для использования Dom7 достаточно подключить библиотеку через npm, CDN или локальный файл.
Через npm:
npm install dom7
Через CDN:
<script src="https://cdn.jsdelivr.net/npm/dom7@3.0.0/dom7.min.js"></script>
После подключения Dom7 доступна функция $ для выборки
элементов и выполнения операций над ними:
const $$ = Dom7; // назначение переменной для удобства
Dom7 использует CSS-селекторы, аналогично
document.querySelectorAll, но возвращает специальный
объект, поддерживающий цепочку методов.
Примеры:
const items = $$('.item'); // выбирает все элементы с классом item
const header = $$('#header'); // выбирает элемент с id header
const inputs = $$('input[type="text"]'); // выбирает все текстовые поля
Возвращаемый объект ведёт себя как массив, поэтому можно использовать индексацию:
console.log(items[0]); // первый элемент с классом item
Dom7 позволяет легко изменять содержимое, добавлять и удалять элементы, управлять классами и атрибутами.
Изменение содержимого и текста:
$$('.item').text('Новый текст'); // заменяет текст всех элементов
$$('#header').html('<span>Заголовок</span>'); // заменяет HTML
Работа с атрибутами и стилями:
$$('a').attr('href', 'https://example.com'); // установить атрибут href
$$('a').attr('target', '_blank'); // установить target
$$('.box').css('color', 'red'); // применить CSS-стиль
$$('.box').css({ backgroundColor: 'blue', fontSize: '16px' }); // несколько стилей
Добавление и удаление классов:
$$('.item').addClass('active'); // добавить класс
$$('.item').removeClass('active'); // удалить класс
$$('.item').toggleClass('active'); // переключить класс
Dom7 предоставляет методы для вставки и удаления элементов.
Добавление элементов:
$$('<div class="new">Новый элемент</div>').appendTo('.container'); // добавить в конец контейнера
$$('<p>Текст</p>').prependTo('#header'); // добавить в начало
Удаление элементов:
$$('.item').remove(); // удалить все выбранные элементы
Навигация по DOM:
const firstItem = $$('.item').eq(0); // выбрать первый элемент
const parent = firstItem.parent(); // получить родителя
const next = firstItem.next(); // следующий элемент
const prev = firstItem.prev(); // предыдущий элемент
Dom7 упрощает работу с событиями, объединяя подписку и удаление слушателей.
Примеры:
$$('.button').on('click', function (e) {
console.log('Кнопка нажата');
});
$$('.button').off('click'); // удалить обработчик
Передача данных в обработчик:
$$('.button').on('click', { id: 1 }, function (e) {
console.log(e.data.id); // 1
});
Основная сила Dom7 — возможность выстраивать цепочки методов, что уменьшает количество кода и повышает читаемость:
$$('.item')
.addClass('active')
.css({ color: 'white', backgroundColor: 'black' })
.on('click', function () {
$$(this).removeClass('active');
});
В этой цепочке элементы с классом item получают новый
класс, меняются их стили и добавляется обработчик клика, всё в одном
выражении.
Dom7 минимальна по размеру, но предоставляет полный набор инструментов для работы с DOM: от простой выборки до сложной манипуляции элементами, событий и атрибутов.