que tienen una serie de elementos de menú, cada una conteniendo Nombre y URL como esta:Crear un menú UL anidado basado en la estructura ruta URL de elementos de menú
var menuItems = [
{
name : "Store",
url : "/store"
},
{
name : "Travel",
url : "/store/travel"
},
{
name : "Gardening",
url : "/store/gardening"
},
{
name : "Healthy Eating",
url : "/store/healthy-eating"
},
{
name : "Cook Books",
url : "/store/healthy-eating/cook-books"
},
{
name : "Single Meal Gifts",
url : "/store/healthy-eating/single-meal-gifts"
},
{
name : "Outdoor Recreation",
url : "/store/outdoor-recreation"
},
{
name : "Hiking",
url : "/store/outdoor-recreation/hiking"
},
{
name : "Snowshoeing",
url : "/store/outdoor-recreation/hiking/snowshoeing"
},
{
name : "Skiing",
url : "/store/outdoor-recreation/skiing"
},
{
name : "Physical Fitness",
url : "/store/physical-fitness"
},
{
name : "Provident Living",
url : "/store/provident-living"
}
]
He estado tratando sin éxito de hacer esto como una lista desordenada con una estructura anidada UL que sigue la estructura ruta URL así:
<ul>
<li><a href="/store">Store</a>
<ul>
<li><a href="/store/travel">Travel</a></li>
<li><a href="/store/gardening">Gardening</a></li>
<li><a href="/store/healthy-eating">Healthy Eating</a>
<ul>
<li><a href="/store/healthy-eating/cook-books">Cook Books</a></li>
<li><a href="/store/healthy-eating/single-meal-gifts">Single Meal Gifts</a></li>
</ul>
</li>
<li><a href="/store/outdoor-recreation">Outdoor Recreation</a>
<ul>
<li><a href="/store/outdoor-recreation/hiking">Hiking</a>
<ul>
<li><a href="/store/outdoor-recreation/hiking/snowshoeing">Snowshoeing</a></li>
</ul>
</li>
<li><a href="/store/outdoor-recreation/skiing">Skiing</a></li>
</ul>
</li>
<li><a href="/store/physical-fitness">Physical Fitness</a></li>
<li><a href="/store/provident-living">Provident Living</a></li>
</ul>
</li>
</ul>
Todos los ejemplos que he visto comenzar con una estructura de datos que refleja la relación entre padres e hijos (por ejemplo, XML o JSON), pero estoy teniendo un momento muy difícil sacando esto de la URL y usando para renderizar la nueva estructura.
Si alguien puede por favor dirigirme en la dirección correcta sobre cómo hacer esto con jQuery, realmente lo agradecería. Me doy cuenta de que probablemente necesite usar algunas funciones recursivas o plantillas jQuery, pero estas cosas aún son un poco nuevas para mí.
Gracias
Esto funciona muy bien, pero una 'excepción': Si hay un nodo secundario sin un nodo padre definido que se añadirá como un padre/mainnode. No sé si esto es un efecto secundario deseado, pero sería plausible. – buschtoens
Lo siento pero esto no funciona, probé tu código varias veces. Funciona bien para el primer nodo, pero cuando hay niños en el siguiente hermano inmediato, los hijos del siguiente hermano se agregan a la lista de niños del primer nodo. –
@Davide, ¿Cómo usar los datos HTML formados para renderizar para un árbol? –