@Haoss
html-верстальщик

Нужен алгоритм для меню в массив. Возможно?

Все привет! Изучаю js, нужен совет, который подтолкнет в нужное русло, у самого не получается.
Есть меню
<div id="catalog-navigation-ul">
          <ul>
            <li><a href="http://yandex.ru">Наркологическая помощь</a>
              <ul>
                <li><a href="#">Нарколог на дом</a>
                  <ul>
                    <li><a href="#">Детоксикация</a></li>
                    <li><a href="#">Вывод из запоя</a></li>
                    <li><a href="#">Снятие наркотической ломки</a></li>
                    <li><a href="#">Кодирование</a></li>
                  </ul>
                </li>
                <li><a href="#">Лечение алкоголизма</a>
                  <ul>
                    <li><a href="#">Лечебная программа</a></li>
                    <li><a href="#">Кодирование</a></li>
                  </ul>
                </li>
                <li><a href="#">Лечение наркозависимости</a>
                  <ul>
                    <li><a href="#">Лечебная программа </a></li>
                    <li><a href="#">Кодирование</a></li>
                  </ul>
                </li>
                <li><a href="#">Лечение табакокурения</a></li>
                <li><a href="#">Лечение игромании</a></li>
              </ul>
            </li>
            <li><a href="#">Психиатрическая помощь</a>
              <ul>
                <li><a href="#">Психиатр на дом</a>
                  <ul>
                    <li><a href="#">Консультация</a></li>
                    <li><a href="#">Назначение терапии</a></li>
                  </ul>
                </li>
                <li><a href="#">Лечение депрессии </a></li>
                <li><a href="#">Лечение шизофрении</a></li>
                <li><a href="#">Лечение неврологических расстройств</a></li>
                <li><a href="#">Лечение деменции</a></li>
                <li><a href="#">Детский психиатр</a></li>
                <li><a href="#">Психиатр для пожилых пациентов</a></li>
              </ul>
            </li>
            <li><a href="#">Психотерапевтическая помощь</a>
              <ul>
                <li><a href="#">Психотерапия при алкогольной и наркотической зависимости</a></li>
                <li><a href="#">Реабилитация 12 шагов</a></li>
                <li><a href="#">Психотерапия пси психических расстройствах</a></li>
                <li><a href="#">Гипноз</a></li>
                <li><a href="#">Когнитивно-поведенческая психотерапия</a></li>
              </ul>
            </li>
            <li><a href="#">Диагностика</a>
              <ul>
                <li><a href="#">Тестирование(анализ) на наркотические вещества</a></li>
                <li><a href="#">Диагностика по крови на психические заболевания</a></li>
                <li><a href="#">Оценка лечебно-реабилитационного потенциала</a></li>
              </ul>
            </li>
          </ul>
        </div>


Хочу получить, что-то такое
var arr = [
      {
        text: 'Наркологическая помощь',
        link: '#',
        children: [
          {
            text: 'Нарколог на дом',
            link: '#',
            children: [
              {
                text: 'Детоксикация',
                link: '#',
                children: false
              },
              {
                text: 'Вывод из запоя',
                link: '#',
                children: false
              },
              {
                text: 'Снятие наркотической ломки',
                link: '#',
                children: false
              },
              {
                text: 'Кодирование',
                link: '#',
                children: false
              }
            ]
          },
          {
            text: 'Лечение алкоголизма',
            link: '#',
            children: [
              {
                text: 'Лечебная программа',
                link: '#',
                children: false
              },
              {
                text: 'Кодирование',
                link: '#',
                children: false
              }
            ]
          },
          {
            text: 'Лечение наркозависимости',
            link: '#',
            children: [
              {
                text: 'Лечебная программа',
                link: '#',
                children: false
              },
              {
                text: 'Кодирование',
                link: '#',
                children: false
              }
            ]
          },
          {
            text: 'Лечение табакокурения',
            link: '#',
            children: false
          },
          {
            text: 'Лечение игромании',
            link: '#',
            children: false
          }
        ]
      },
      {
        text: 'Психиатрическая помощь',
        link: '#',
        children: true
      },
      {
        text: 'Психотерапевтическая помощь',
        link: '#',
        children: true
      },
      {
        text: 'Диагностика',
        link: '#',
        children: true
      }
    ];


Т.е. li - объект, который содержит ссылку, текст и детей в массиве. Что бы я потом из этого меню смог сам сделать два нужных отдельных мне меню. Это сейчас не важно, финальное решение не нужно, нужен алгоритм, что и как, дальше буду думать сам.
Заранее спасибо.
  • Вопрос задан
  • 137 просмотров
Решения вопроса 1
bingo347
@bingo347 Куратор тега JavaScript
Crazy on performance...
Распарсить в дом, написать функцию "пройтись по детям ul", сделать ее рекурсивной (чтобы можно было проходить вложенные ul)
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы