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));