Hack Frontend Community

Для чего нужны data-атрибуты в HTML

data-атрибуты — это способ хранить кастомные данные в HTML-элементах. Они начинаются с префикса data- и позволяют безопасно передавать информацию из HTML в JavaScript без создания нестандартных атрибутов.


Синтаксис

<div data-user-id="1234" data-role="admin">Привет, это команда Hack Frontend!</div>

Где применяются?

  • Для передачи данных в JavaScript
  • Для инициализации компонентов
  • Для хранения конфигураций
  • При работе с событиями (например, у кнопки можно указать data-id)
  • Для делегирования событий (например, на списках)

Как получить data-атрибут в JavaScript?

<button data-product-id="42">Купить</button>
const button = document.querySelector("button");
const productId = button.dataset.productId;

console.log(productId); // "42"

Все data- атрибуты становятся доступными через element.dataset, а имя атрибута превращается в camelCase.

Пример использования

<ul>
  <li data-id="1">Элемент 1</li>
  <li data-id="2">Элемент 2</li>
  <li data-id="3">Элемент 3</li>
</ul>
document.querySelector("ul").addEventListener("click", (e) => {
  const target = e.target;
  const id = target.dataset.id;
  if (id) {
    console.log("Клик по элементу с id:", id);
  }
});

Здесь data-id используется для определения, на какой элемент списка кликнули.

Итог

  • data- атрибуты — мощный способ передавать данные между HTML и JavaScript.
  • Их легко читать, использовать и не нужно создавать лишние глобальные переменные.
  • Отлично подходят для интерактивных компонентов, навигации, отслеживания кликов и многого другого.

Совет:

Используйте data-* для семантически нейтральных, но полезных данных, которые нужны только JavaScript-части приложения.