Skip to content

Instantly share code, notes, and snippets.

@matesnippets
Created May 13, 2016 08:28
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save matesnippets/03aa59e1172eca91382adf7510677996 to your computer and use it in GitHub Desktop.
Save matesnippets/03aa59e1172eca91382adf7510677996 to your computer and use it in GitHub Desktop.
Replaces placeholder values, or text, or attributes in the DOM.
'use strict';
define(function () {
var substitute = {};
substitute.placeholders = function (target, replaceObject) {
_replaceStuff(target, replaceObject, 'placeholders');
};
substitute.attribute = function (target, replaceObject) {
_replaceStuff(target, replaceObject, 'attribute');
};
substitute.html = function (target, newValue) {
var targetElements = document.querySelectorAll(target || '.stubber');
for (var i = 0; i < targetElements.length; i++) {
var el = targetElements[i];
el.innerHTML = newValue;
}
};
function _replaceStuff(target, replaceObject, typeOfReplace) {
var targetElements = document.querySelectorAll(target || '.stubber'),
stubs = Object.keys(replaceObject);
if (!targetElements.length || !stubs.length || !typeOfReplace) {
return;
}
for (var i = 0; i < targetElements.length; i++) {
var el = targetElements[i];
stubs.forEach(function (stub) {
if (typeOfReplace === 'placeholders') {
var stubRegex = new RegExp(stub, 'g');
el.innerHTML = el.innerHTML.replace(stubRegex, replaceObject[stub]);
}
else {
el.setAttribute(stub, replaceObject[stub]);
}
});
}
};
return substitute;
});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment