Доброго времени суток!
В JS не силен и уже 2 дня пытаюсь решить вроде простую задачу, но у меня ничего внятного не получается.
Может я конечно и в целом не правильно делаю.
Задача такая: есть страница, на которой создается меню неограниченного уровня вложенности. Пункты динамически добавляются и сортируются через Sortable jQuery UI.
После этого нужно отправить JSON в PHP для записи в БД. Соответственно, этот JSON потом будет выводиться на страницы через PHP.
Есть такой DOM:
<ul>
<li><span>Пункт 1</span></li>
<li>
<span>Пункт 2</span>
<ul>
<li><span>Пункт 2.1</span></li>
<li>
<span>Пункт 2.2</span>
<ul>
<li><span>Пункт 2.2.1</span></li>
<li><span>Пункт 2.2.2</span></li>
<li>
<span>Пункт 2.2.3</span>
<ul>
<li><span>2.2.3.1</span></li>
<li><span>2.2.3.2</span></li>
</ul>
</li>
</ul>
</li>
<li><span>Пункт 2.3</span></li>
</ul>
</li>
<li><span>Пункт 3</span></li>
<li>
<span>Пункт 4</span>
<ul>
<li><span>Пункт 4.1</span></li>
<li><span>Пункт 4.2</span></li>
<li><span>Пункт 4.3</span></li>
</ul>
</li>
<li><span>Пункт 5</span></li>
</ul>
На выходе хотелось бы получить такой объект (если я правильно понимаю):
{
0: {title: 'Пункт 1'},
1: {
title: 'Пункт 2',
0: {title: 'Пункт 2.1'},
1: {
title: 'Пункт 2.2',
0: {title: 'Пункт 2.2.1'},
1: {title: 'Пункт 2.2.2'},
2: {
title: 'Пункт 2.2.3',
0: {title: '2.2.3.1'},
1: {title: '2.2.3.2'},
},
},
2: {title: 'Пункт 2.3'},
},
2: {title: 'Пункт 3'},
3: {
title: 'Пункт 4',
0: {title: 'Пункт 4.1'},
1: {title: 'Пункт 4.2'},
2: {title: 'Пункт 4.3'},
}
}
Я пробовал делать через рекурсию, но не понял как определить, что есть еще потомки на уровни вниз.
Пожалуйста, помогите.
Заранее огромное спасибо!