🧱 Суть
data-* – это кастомные HTML-атрибуты для хранения данных в DOM.
dataset – это JS-интерфейс для работы с ними.
Пример:
<div data-user-id="42"></div>element.dataset.userId // "42"📦 Проблема
1. Кажется, что это “магия” или зарезервированное слово
dataset.dragHandleВыглядит как встроенное свойство, но это не так.
2. Непонятно, откуда берётся data-*
element.dataset.dragHandle = 'true';В HTML такого атрибута изначально нет – он появляется сам.
✅ Решение
Понимать, как работает преобразование:
data-drag-handle
↓
dataset.dragHandle
Правила:
data-убирается-→ camelCase
💻 Код
Создание атрибута:
element.dataset.dragHandle = 'true';Результат в DOM:
<div data-drag-handle="true"></div>Чтение:
element.dataset.dragHandle // "true"Проверка:
console.log(element.outerHTML);🎯 Вывод
data-*– это просто хранилище данных в HTMLdataset– удобный способ работать с ними из JS- это не зарезервированные слова
- браузер автоматически синхронизирует HTML ↔ JS
- все значения всегда строки