Создание списка новго ul списка в нутри ul
Здравствуйте, допустим есть некий список с вложенностью
<ul class="spisok"> <li>1</li> <li>2</li> <li>3</li> <li class="subspisok">4<ul> <li>4.1</li> <li>4.2</li> <li>4.3</li> <li>4.4</li> <li>4.5</li> <li>4.6</li> <li>4.7</li> <li>4.8</li> </ul> </li> <li class="subspisok">5<ul> <li>5.1</li> <li>5.2</li> <li>5.3</li> <li>5.4</li> .... <li>5.11</li> </ul></li> <li>6</li> <li>7</li> </ul> Необходимо после каждого 3 элемента вложенного списка создавать дополнительную вложенность, т.е. что бы было примерно так <ul class="spisok"> <li>1</li> <li>2</li> <li>3</li> <li class="subspisok">4<ul> <li>4.1</li> <li>4.2</li> <li>4.3<ul> <li>4.4</li> <li>4.5</li> <li>4.6<ul> <li>4.7</li> <li>4.8</li> </ul> </li> </ul> </li> </ul> </li> <li class="subspisok">5<ul> <li>5.1</li> <li>5.2</li> <li>5.3<ul> <li>5.4</li> ....<ul><li>5.11</li> </ul> </ul> </li> </ul> </li> <li>6</li> <li>7</li> </ul> чтобы после каждого n-го элемента что-то вставить, я использую функцию $("ul li.subspisok li:nth-child(3n)").after("текст") но конкретно со списком у меня что-то не получается, подскажите в каком направлении смотреть |
Цитата:
А вот в сам элемент списка можно вставлять много чего. ;) |
можно подробнее, не очень понял
|
snut8,
<!DOCTYPE html> <html> <head> <title>Untitled</title> <meta charset="utf-8"> <style type="text/css"></style> <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script> <script> $(function() { $(".subspisok ul").each(function(i, ul) { $("li", ul).each(function(i, li) { $(li).appendTo(ul); ++i % 3 || (ul = $("<ul>").appendTo(li)) }) }) }); </script> </head> <body> <ul class="spisok"> <li>1</li> <li>2</li> <li>3</li> <li class="subspisok">4 <ul> <li>4.1</li> <li>4.2</li> <li>4.3</li> <li>4.4</li> <li>4.5</li> <li>4.6</li> <li>4.7</li> <li>4.8</li> </ul> </li> <li class="subspisok">5 <ul> <li>5.1</li> <li>5.2</li> <li>5.3</li> <li>5.4</li>.... <li>5.11</li> </ul> </li> <li>6</li> <li>7</li> </ul> </body> </html> |
спасибо, всё работает, а то уже весь день сижу и думаю над этим:dance:
|
не подскажешь как модернизировать скрипт что бы ul вставлялся не в последний li а на уровне предыдущего li, т.е. что бы в конечном итоге было так
<li class="subspisok"> <ul> <li>5.1</li> <li>5.2</li> <li>5.3</li> </ul> <ul> <li>5.4</li> <li>5.11</li> </ul> </li> |
snut8,
++i % 3 || (ul = $("<ul>").insertAfter(ul)) |
Цитата:
|
Часовой пояс GMT +3, время: 08:07. |