JSFiddle - React, Tailwind, and code Playground
by Darby Rathbone
HTML
<span data-set='this.innerHTML' data-type='random-number' data-min='0' data-max='1000'></span>
JavaScript
var data_types = {
random_number: function (e) {
var min = parseFloat(e['data-min']),
max = parseFloat(e['data-max']);
e.updateAttribute = function(v) {
Function(e['data-set']+" = "+v).call(e);
};
e.updateAttribute((max-min)*Math.random()+min);
}
};
[].slice.call(Object.keys(arguments[0].attributes)).forEach(
function () {
if (arguments[0] === "data-type") {
this[arguments[0]]
}, arguments[0]):
}
};
[].slice.call(document.querySelectorAll('*[data-type]')).forEach(
function () {
data_types[arguments[0]['data-type'].replace(/-/gm,'_')](arguments[0]);
});