Dom7 — это легковесная библиотека для работы с DOM, созданная с целью
упрощения манипуляций с элементами страницы, похожая по синтаксису на
jQuery, но более оптимизированная для современных приложений. Все
операции выполняются на коллекции элементов, возвращаемой функцией
Dom7(selector). В Dom7 поддерживаются цепочки методов, что
позволяет писать компактный и читаемый код.
Каждый метод Dom7 работает либо с текущей коллекцией элементов, либо возвращает новую коллекцию, либо изменяет атрибуты, стили или содержимое элементов.
const $$ = Dom7;
const elems = $$('.item'); // выбор всех элементов с классом item
$$(selector) — выбор элементов по CSS-селектору.$(element) — обёртка существующего DOM-узла.Dom7 всегда возвращает коллекцию, даже если найден один элемент, что обеспечивает единообразие при дальнейших операциях.
Добавление, удаление, проверка и переключение классов:
elems.addClass('active'); // добавление класса ко всем элементам
elems.removeClass('inactive'); // удаление класса
elems.toggleClass('highlight'); // переключение класса
const has = elems.hasClass('visible'); // проверка наличия класса у первого элемента
addClass, removeClass,
toggleClass применяются ко всей коллекции.hasClass всегда возвращает булево значение по первому
элементу коллекции.elems.attr('data-id'); // получение атрибута первого элемента
elems.attr('data-id', '123'); // установка атрибута для всех элементов
elems.removeAttr('disabled'); // удаление атрибута
elems.attr({ 'id': 'main', 'role': 'button' });
Текст, HTML и значения полей форм:
elems.text(); // получение текста первого элемента
elems.text('Привет'); // установка текста для всех элементов
elems.html(); // получение HTML содержимого
elems.html('<span>Текст</span>'); // установка HTML
elems.val(); // получение значения формы
elems.val('новое значение'); // установка значения
Добавление и удаление элементов:
elems.append('<p>Новый элемент</p>'); // добавить внутрь каждого элемента в конец
elems.prepend('<p>В начало</p>'); // добавить внутрь каждого элемента в начало
elems.before('<p>Перед элементом</p>'); // добавить перед каждым элементом
elems.after('<p>После элемента</p>'); // добавить после каждого элемента
elems.remove(); // удалить все элементы коллекции
Клонирование элементов:
const clone = elems.clone();
clone() создает копию элементов вместе с их атрибутами
и событиями.elems.css('color'); // получение стиля первого элемента
elems.css('color', 'red'); // установка стиля для всех элементов
elems.css({ 'background': 'blue', 'font-size': '16px' }); // несколько стилей одновременно
elems.width(); // ширина первого элемента
elems.height(); // высота первого элемента
elems.offset(); // возвращает объект {top, left} относительно документа
elems.position(); // возвращает объект {top, left} относительно родителя
Добавление и удаление обработчиков:
function onClick(e) { console.log('clicked'); }
elems.on('click', onClick); // добавить обработчик
elems.off('click', onClick); // удалить обработчик
'click mouseenter'.elems.on('click', '.child', onClick);
Одноразовые обработчики:
elems.once('click', () => console.log('один раз'));
elems.parent(); // родитель всех элементов коллекции
elems.parents('.box'); // все родительские элементы, соответствующие селектору
elems.children(); // все дочерние элементы
elems.find('.sub'); // поиск внутри всех элементов коллекции
elems.siblings(); // все соседние элементы
elems.next(); // следующий элемент
elems.prev(); // предыдущий элемент
elems.filter('.active'); // фильтрует элементы по селектору или функции
elems.eq(0); // возвращает элемент по индексу в коллекции
elems.first(); // первый элемент
elems.last(); // последний элемент
elems.show(); // показать элемент (display: block)
elems.hide(); // скрыть элемент (display: none)
elems.toggle(); // переключение видимости
display, без сложных
анимаций.elems.each((index, el) => { console.log(el, index); }); // итерация по коллекции
elems.index(); // индекс элемента среди соседей
elems.is('.active'); // проверка соответствия селектору
each позволяет выполнять любые операции над элементами
без выхода из цепочки методов.is проверяет соответствие первого элемента коллекции
селектору.$$('.item').addClass('active').css('color', 'red').on('click', handleClick);