Last active
January 13, 2016 14:51
-
-
Save DamianMullins/b856fa096b89a5c54529 to your computer and use it in GitHub Desktop.
Return data attribute value from a given element. Falls back to `getAttribute()` in older browsers.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/** | |
* Return data attribute value from a given element. Falls back to `getAttribute()` in older browsers. | |
* @example | |
* let value = getDataAttributeValue(element, 'component-name'); | |
* @example | |
* let value = getDataAttributeValue(element, 'componentName'); | |
*/ | |
export default function getDataAttributeValue(element, dataName, defaultDataValue = '') { | |
const datasetSupported = element.dataset !== undefined; | |
if (datasetSupported) { | |
let name = dataName.replace(/-([a-z])/g, (name) => return name[1].toUpperCase()); | |
return element.dataset[name] || defaultDataValue; | |
} else { | |
let name = "data-" + dataName.replace(/[A-Z]/g, "-$&").toLowerCase(); | |
return element.getAttribute(name) || defaultDataValue; | |
} | |
}; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/** | |
* Return data attribute value from a given element. Falls back to `getAttribute()` in older browsers. | |
* @example | |
* var value = getDataAttributeValue(element, 'component-name'); | |
* @example | |
* var value = getDataAttributeValue(element, 'componentName'); | |
*/ | |
export default function getDataAttributeValue(element, dataName) { | |
var datasetSupported = element.dataset !== undefined; | |
if (datasetSupported) { | |
var name = dataName.replace(/-([a-z])/g, function(name) { return name[1].toUpperCase() }); | |
return element.dataset[name] || ''; | |
} else { | |
var name = "data-" + dataName.replace(/[A-Z]/g, "-$&").toLowerCase(); | |
return element.getAttribute(name) || ''; | |
} | |
}; |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment