Monday, May 20, 2024
 Popular · Latest · Hot · Upcoming
111
rated 0 times [  118] [ 7]  / answers: 1 / hits: 27916  / 8 Years ago, fri, may 20, 2016, 12:00:00

In input of function is an object who has this structure:



{
tag: 'a', //type of html object
content: blabal, //inner content
attr: {
href: vk.com,
id: 'someId'
},
events: {
click: 'alert(this.href)',
focus: 'this.className=active'
},
style: {
width:100px
}
}


It describes an HTML element. It has to return an HTML element with specified properties. How to parse it? I have something like this:



elemen={
tag:'a',
content:blabal,
attr:{
href:vk.com,
id:'someId'
},
events:{
click:'alert(this.href)',
focus:'this.className=active'
},
style:{
width:100px
}
};
console.log(elemen.tag);
var node = document.createElement(elemen.tag);
node.innerHTML= elemen.content;

for(var prop in elemen.events){

var fun =new Function(elemen.events[prop]);
console.log(fun);
node.bind(prop, fun);
// divv.bind(prop, fun);
}

More From » jquery

 Answers
7

Using only javascript



 var _createElem = document.createElement(+_elem.tag+); 
_createElem.innerHTML = _elem.content;

//set attributes
for(var keys in _elem.attr){
_createElem.setAttribute(''+keys+'',_elem.attr[keys])
}
//set style
for(var keys in _elem.style){
_createElem.setAttribute(''+keys+'',_elem.style[keys])
}
//set events
for(var keys in _elem.events){
_createElem.setAttribute('on'+keys,_elem.events[keys])
}
document.getElementById(demoDiv).appendChild(_createElem)


Note: The elem has got both onclick & href , you may need to return true/false as per your requirement


[#62096] Wednesday, May 18, 2016, 8 Years  [reply] [flag answer]
Only authorized users can answer the question. Please sign in first, or register a free account.
andrewb

Total Points: 259
Total Questions: 124
Total Answers: 90

Location: Ivory Coast
Member since Sun, Mar 7, 2021
3 Years ago
;