get-dataset
Version:
Get a DOM element's or an SVG Element's dataset. Works where .dataset isn't present such as in < IE11
35 lines (31 loc) • 913 B
JavaScript
/**
* @license get-dataset https://github.com/cosmios/get-dataset
*
* The MIT License (MIT)
*
* Copyright (c) 2014-2015 Olivier Scherrer <pode.fr@gmail.com>
*/
;
var toCamelCase = require("to-camel-case");
/**
* Get a domNode's dataset attribute. If dataset doesn't exist (IE)
* then the domNode is looped through to collect them.
* @param {HTMLElement|SVGElement} dom
* @returns {Object} dataset
*/
module.exports = function getDataset(dom) {
var dataset = {},
i, l, split, join;
if ("dataset" in dom) {
return dom.dataset;
} else {
for (i=0, l=dom.attributes.length; i<l; i++) {
split = dom.attributes[i].name.split("-");
if (split.shift() == "data") {
join = split.join("-");
dataset[toCamelCase(join)] = dom.getAttribute("data-" + join);
}
}
return dataset;
}
};