Skip to content

Instantly share code, notes, and snippets.

@brynner
Last active August 16, 2018 15:43
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save brynner/c8fb3cd785ec9c11c4bcb6b608548810 to your computer and use it in GitHub Desktop.
Save brynner/c8fb3cd785ec9c11c4bcb6b608548810 to your computer and use it in GitHub Desktop.
Add data to HTML according to object's property name
// Add data to HTML according to object´s property name
function addContentFromDataToHtml(object, dataSet) {
recursiveObject({object: object, callback: addContentFromDataToHtmlCallback, dataSet: dataSet});
}
function recursiveObject(recursiveParams) {
if (recursiveParams.parentsItem) {
recursiveParams.parentsItem = recursiveParams.parentsItem+'.';
} else {
recursiveParams.parentsItem = '';
}
if (typeof(recursiveParams.object) == 'object') {
for(var item in recursiveParams.object){
recursiveObject({object: recursiveParams.object[item], parentsItem: recursiveParams.parentsItem+item, callback: recursiveParams.callback, dataSet: recursiveParams.dataSet});
recursiveParams.callback(recursiveParams.parentsItem+item, recursiveParams.object[item], recursiveParams.dataSet);
}
}
}
function addContentFromDataToHtmlCallback(key, value, dataSet) {
$((dataSet?'[data-set="'+dataSet+'"]':'')+' [data-content="'+key+'"]').text(value);
$((dataSet?'[data-set="'+dataSet+'"]':'')+' [data-content="'+key+'"]').val(value);
}
<div data-set="group-name">
<div data-content="propertyOne"></div>
<div data-content="propertyTwo.sub.sub.sub"></div>
</div>
getSomething(callbackGetSomething);
function callbackGetSomething(dataObject) {
addContentFromDataToHtml(dataObject 'group-name');
}
function getSomething(callback) {
var apiEndpoint = '';
$.get(apiEndpoint, null, function(apiResult) {
callback(apiResult);
}).fail(function(error) {
return error;
});
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment