I have an array of menu items, each containing Name and URL like this:
var menuItems = [
{
name : \"Store\",
url : \"/store\"
12 simple lines of code:
var rootList = $("").appendTo("body");
var elements = {};
$.each(menuItems, function() {
var parent = elements[this.url.substr(0, this.url.lastIndexOf("/"))];
var list = parent ? parent.next("ul") : rootList;
if (!list.length) {
list = $("").insertAfter(parent);
}
var item = $("- ").appendTo(list);
$("").attr("href", this.url).text(this.name).appendTo(item);
elements[this.url] = item;
});
http://jsfiddle.net/gilly3/CJKgp/