Атрибут data-* тега <a>
Описание
Атрибуты data-* позволяют хранить произвольные данные в HTML-элементах, включая ссылки <a>. Эти атрибуты полностью валидны в HTML5 и не влияют на отображение или поведение элемента.
<a href="#" data-id="12345">Товар #12345</a>
<a href="/product"
data-product-id="789"
data-category="electronics"
data-price="199.99">
Смартфон Premium
</a>
Особенности работы:
| Свойство | Описание |
|---|---|
| Синтаксис | Любое имя после префикса data- |
| Типы данных | Строки (числа и объекты нужно преобразовывать) |
| Доступ из JavaScript | Через dataset или getAttribute |
| Доступ из CSS | Через атрибутные селекторы |
<a href="#" data-user-id="42" data-role="admin">Профиль</a>
<script>
const link = document.querySelector('a');
console.log(link.dataset.userId); // "42"
console.log(link.dataset.role); // "admin"
link.dataset.lastActive = new Date().toISOString();
</script>
Популярные сценарии использования:
- Хранение ID и метаданных для AJAX-запросов
- Конфигурация JavaScript-виджетов
- Аналитика и отслеживание событий
- Тестирование (QA-метки)
- Условная стилизация через CSS
Соглашения об именовании:
- Используйте kebab-case (дефисы между словами)
- Избегайте аббревиатур и сокращений
- Будьте последовательны в именовании
- Не используйте существующие HTML-атрибуты
- Преобразуйте camelCase в kebab-case (
dataUserId→data-user-id)
Совет: Для сложных данных используйте JSON в одном атрибуте: data-info='{"id":42,"role":"admin"}'