How To Manage Custom Data Of Element Using dataset
Explains the way to store and manipulate element specific custom data using dataset property on HTMLElement interface.
We need to store or associate custom data specific to an element in order to do processing e.g. get the database mapped id or name associated with the data. This data can be used to send an update request to the server by AJAX/WebSocket call. The exact processing depends on the actual requirements, but storing data using data attributes is really handy in several situations.
The dataset property on the HTMLElement interface provides access to either read or write the custom data using data-* attributes where * is the hyphen separated name corresponding to the camel case name. We can read the dataset property, but can't write it directly. The write operations have to be performed on the attributes as shown below.
// Some of the data values are already filled
<div id="department" data-id="124120" data-org="mycorp" data-name="finance" data-total-members="125" data-status>Finance Department</div>
The above div element corresponds to a department within an organization with custom attributes including id, org, name,
// Get the element
var dept = document.querySelector( '#department' );
// Read the attributes
var id = dept.dataset.id;
var org = dept.dataset.org;
var name = dept.dataset.name;
var totalMembers = dept.dataset.totalMembers; // Access the hyphenated data attribute using camel case naming convention
var status = dept.dataset.status;
// Set status attribute
dept.dataset.status = 'active';
// Update name
dept.dataset.name = 'Finance';
// Delete member count attribute
An example pen on