UNPKG

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
/** * @license get-dataset https://github.com/cosmios/get-dataset * * The MIT License (MIT) * * Copyright (c) 2014-2015 Olivier Scherrer <pode.fr@gmail.com> */ "use strict"; 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; } };