Dom7 — это компактная и высокопроизводительная библиотека для работы с DOM, которая часто используется вместе с фреймворком Framework7, но может применяться и отдельно. Одной из ключевых возможностей Dom7 является удобное управление атрибутами элементов.
Для чтения атрибута используется метод attr().
const link = Dom7('a.link');
const href = link.attr('href');
console.log(href);
attr() с одним аргументом (названием
атрибута), метод вернёт значение первого элемента из набора.undefined.Метод поддерживает стандартные HTML-атрибуты (id,
class, href, src) и
пользовательские (data-*).
const button = Dom7('button');
const customData = button.attr('data-role');
attr() также позволяет устанавливать значение атрибута,
если передать два аргумента: имя атрибута и новое значение.
Dom7('img').attr('src', 'image.jpg');
Dom7('a').attr('target', '_blank');
Для удобства Dom7 поддерживает передачу объекта с парами
ключ: значение.
Dom7('input').attr({
type: 'text',
placeholder: 'Введите текст',
maxlength: 50
});
data-*
атрибутамиDom7 предоставляет отдельный метод data(), который
работает поверх HTML data-* атрибутов.
const item = Dom7('.item');
item.data('id'); // Чтение data-id
item.data('role', 'admin'); // Установка data-role
data-user-id → userId).Метод hasAttr() проверяет существование атрибута на
элементе.
if (Dom7('img').hasAttr('alt')) {
console.log('Атрибут alt установлен');
}
true или false.Метод removeAttr() удаляет один или несколько
атрибутов.
Dom7('a').removeAttr('target');
Dom7('img').removeAttr('width height');
Все методы атрибутов (attr(), data(),
removeAttr()) работают на коллекции элементов.
Dom7('li').attr('data-selected', 'true');
attr() всегда возвращает значение первого
элемента коллекции.Хотя Dom7 имеет отдельные методы addClass(),
removeClass(), toggleClass() и
css(), иногда удобно использовать attr() для
работы с class и style:
Dom7('div').attr('class', 'box active');
Dom7('div').attr('style', 'color: red; background: yellow;');
Методы Dom7 фактически работают поверх стандартных свойств
getAttribute, setAttribute,
removeAttribute и hasAttribute.
const el = Dom7('input')[0]; // Получаем первый элемент из выборки
el.getAttribute('type'); // Эквивалент attr('type')
el.setAttribute('type', 'password'); // Эквивалент attr('type', 'password')
each().Dom7('img').each((index, el) => {
console.log(Dom7(el).attr('src'));
});
При создании элементов через
Dom7('<div></div>') можно сразу назначать
атрибуты:
const newDiv = Dom7('<div></div>').attr({
id: 'new',
'data-role': 'container'
});
Dom7('body').append(newDiv);
Эти возможности делают Dom7 мощным инструментом для гибкого управления атрибутами элементов и позволяют писать компактный, чистый и понятный код при работе с динамическим DOM.