Задать вопрос
@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 Оценить 1 комментарий
Решения вопроса 1
bingo347
@bingo347 Куратор тега JavaScript
Crazy on performance...
Распарсить в дом, написать функцию "пройтись по детям ul", сделать ее рекурсивной (чтобы можно было проходить вложенные ul)
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы