I have an html block like this;
<div id="a">
<div id=b parentid=a>
<div id=d parentid=b>
</div>
</div>
<div id=c parentid=a>
<div id=e parentid=c>
<div id=f parentid=e>
</div>
</div>
</div>
</div>
I want to convert this dynamic html block to javascript object. I guess the best way to do it is the recursive function. I want to scan the html structure above and get the following output the result I want;
items :
[
{
id : "a",
parentid : null,
items :
[
{
id : "b",
parentid : "a",
items :
[
{
id : "d",
parentid : "b",
}
]
},
{
id : "c",
parentid : "a",
items :
[
{
id : "e",
parentid : "c",
items :
[
{
id : "f",
parentid : "e",
}
]
}
]
}
]
}
]
I'm trying this way but I can't get the right result. addComponent() is a function I defined.
function getSubs(a) {
var generalObject = new Component();
var gElement = [];
gElement = $("[parentid=" + a + "]");
if (gElement.length > 0) {
for (var i = 0; i < gElement.length; i++) {
var obj = new Component();
elementId = gElement[i].getAttribute('id');
dataType = gElement[i].getAttribute('data-type');
obj.type = dataType;
obj.key = elementId;
generalObject.addComponent(obj);
getSubs(elementId);
}
}
}
can you help me?