Use dataset property to access data-* attributes
const element = document.querySelector('.item');
const userId = element.dataset.userId;
element.dataset.status = 'active';// HTML: <div data-user-id="123" data-role="admin"></div>
const div = document.querySelector('div');
// Read data attributes
console.log(div.dataset.userId); // "123"
console.log(div.dataset.role); // "admin"
// Set data attributes
div.dataset.status = 'online';
div.dataset.lastSeen = new Date().toISOString();
// Remove data attribute
delete div.dataset.role;
// Iterate over all data attributes
Object.entries(div.dataset).forEach(([key, value]) => {
console.log(`${key}: ${value}`);
});element.dataset.config = JSON.stringify({ a: 1 });
const config = JSON.parse(element.dataset.config);const value = element.getAttribute('data-user-id');
element.setAttribute('data-status', 'active');Avoid storing complex objects as strings
// DON'T DO THIS
element.dataset.user = user.toString(); // "[object Object]"✓ Works in all modern browsers (IE11+)