Today I Learned - Rocky Kev

TIL accessing different data attributes

POSTED ON:

TAGS:

Say you had data you wanted to store on a element.

<div id="lunch" data-sandwich="tuna" data-drink="soda" data-side="chips" data-snack="cookie" data-payment-method="credit card">
Lunch!
</div>

To use it, you can use:

const lunchElement = document.getElementById('lunch');

const lunchSandwich = lunchElement.getAttribute('data-sandwich');

console.log(lunchSandwich); // Output: "tuna"

But that's a lot of data you have to pass for data-drink, data-side, data-snack, and data-payment-method.

A better way is to go with the Element.dataset property.

let lunch = document.querySelector('#lunch');
let data = lunch.dataset;

let data = {
drink: 'soda',
paymentMethod: 'credit card',
sandwich: 'tuna',
side: 'chips',
snack: 'cookie'
};

via Managing data attributes with the dataset property in vanilla JavaScript


Related TILs

Tagged:

TIL what is npm Script

Despite their high usage they are not particularly well optimized and add about 400ms of overhead. In this article we were able to bring that down to ~22ms.

TIL fancy methods to transform Javascript Objects

You can use Object.entries(), Object.keys(), Object.fromEntries()...

TIL how to hide your JS code

ONE THING TO NOTE: Encrypting a script is stronger than obfuscation, both methods are still not adequate to protect secret content. Honestly, I don't think it's worth it on a production site, and instead just go with pure server-side if you want security. But it's fascinating.