EnumerateList
by michaelschmid
HTML
<div id="sortableSitemap">
<ul class="sortable">
<li id="world_news_now"><div>World</div>
<ul>
<li id="the_news"><div>The News</div></li>
</ul>
</li>
<li id="sports_news_cool"><div>Sports</div></li>
</ul>
</div>
<div id="console-log"></div>
CSS
.console-line
{
font-family: monospace;
margin: 2px;
}
JavaScript
var count = 0;
var pages = [];
var parentStack = [];
var result = {};
parentStack.push(0);
function createNewLevel(obj) {
var obj = obj || document.getElementById('sortableSitemap');
if (obj.tagName == 'LI') {
console.log('get LI:' + obj.textContent);
++count;
console.log(obj);
pages.push({
myId: count,
Name: obj.textContent
});
}
if (obj.hasChildNodes()) {
var child = obj.firstChild;
while (child) {
if (child.nodeType === 1) {
if (child.tagName == 'UL') {
parentStack.push(count);
}
createNewLevel(child);
if (child.tagName == 'UL') {
parentStack.pop();
}
}
child = child.nextSibling;
}
}
}
createNewLevel();
console.log(JSON.stringify(pages));