Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   id для вложенного списка (https://javascript.ru/forum/jquery/59583-id-dlya-vlozhennogo-spiska.html)

newbie guy 17.11.2015 19:55

id для вложенного списка
 
И снова, здравствуйте!

Ранее я поднимал тему относительно переименовывания строк в списке.

Сама функция для переименовывания есть и работает, но проблема теперь в другом.

Нужно задать каждой строке в списке, свой id, который будет обозначать степень его вложенности.
Надеюсь, что я правильно выразился.

Приведу пример, чего хочу добиться.

<ul>
    <li>
        <span id="1">Заголовок</span>
        <ul>
            <li>
                <span id="1-1">Подзаголовок</span>
                <ul>
                    <li>
                        <span id="1-1-1">Подподзаголовок</span>
                    </li>
                </ul>
            </li>
        </ul>
    </li>
    <li>
        <span id="2">Заголовок</span>
        <ul>
            <li>
                <span id="2-1">Подзаголовок</span>
            </li>
        </ul>
    </li>
</ul>


Через функцию $().each, пытался реализовать, но пока не получил желаемого.

рони 17.11.2015 21:09

newbie guy,
:-? сервера совсем нет?
<!DOCTYPE HTML>

<html>

<head>
  <title>Untitled</title>
  <meta charset="utf-8">
  <style type="text/css">

  </style>
  <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
  <script>
$(function() {
    $("span").each(function(indx, span) {
        var id = $.map($(span).parents("li"), function(li) {
            return $(li).index() + 1
        });
        span.id = id.reverse().join("-")
    });
    $("textarea").val($("ul").html()) //для теста
});
  </script>
</head>

<body>



<ul>
    <li>
        <span>Заголовок</span>
        <ul>
            <li>
                <span>Подзаголовок</span>
                <ul>
                    <li>
                        <span>Подподзаголовок</span>
                    </li>
                </ul>
            </li>
        </ul>
    </li>
    <li>
        <span>Заголовок</span>
        <ul>
            <li>
                <span>Подзаголовок</span>
            </li>
        </ul>
    </li>
</ul>

<textarea name="" rows="24" cols="70"></textarea>

</body>

</html>

newbie guy 17.11.2015 21:36

рони,
Сервер есть, Apache.
Даже есть бд с таблицей, в таблице есть три поля
id AUTO_INCREMENT,
parent_id,
title

Есть скрипт на php, который выводит данные из бд в виде списка.

Я так полагаю, что вы предложите в php добавлять id к каждому <span>.
Пытался я это делать, но видит Бог, не хватило мне ума его там генерировать.

newbie guy 18.11.2015 00:12

Глупый был вопрос и необходимости так мудрить с id, нет.
Ведь можно просто брать id из бд и лепить его каждому span, ведь id и так уникальный.


Часовой пояс GMT +3, время: 10:38.