Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 01.06.2018, 16:15
Новичок на форуме
Отправить личное сообщение для snut8 Посмотреть профиль Найти все сообщения от snut8
 
Регистрация: 01.06.2018
Сообщений: 8

Создание списка новго 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("текст")

но конкретно со списком у меня что-то не получается, подскажите в каком направлении смотреть
Ответить с цитированием
  #2 (permalink)  
Старый 01.06.2018, 16:28
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,137

Сообщение от snut8
после каждого n-го элемента что-то вставить
В списке после элемента списка можно вставить еще один элемент списка...

А вот в сам элемент списка можно вставлять много чего.
Ответить с цитированием
  #3 (permalink)  
Старый 01.06.2018, 16:50
Новичок на форуме
Отправить личное сообщение для snut8 Посмотреть профиль Найти все сообщения от snut8
 
Регистрация: 01.06.2018
Сообщений: 8

можно подробнее, не очень понял
Ответить с цитированием
  #4 (permalink)  
Старый 01.06.2018, 16:53
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,081

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>
Ответить с цитированием
  #5 (permalink)  
Старый 01.06.2018, 17:05
Новичок на форуме
Отправить личное сообщение для snut8 Посмотреть профиль Найти все сообщения от snut8
 
Регистрация: 01.06.2018
Сообщений: 8

спасибо, всё работает, а то уже весь день сижу и думаю над этим
Ответить с цитированием
  #6 (permalink)  
Старый 01.06.2018, 17:56
Новичок на форуме
Отправить личное сообщение для snut8 Посмотреть профиль Найти все сообщения от snut8
 
Регистрация: 01.06.2018
Сообщений: 8

не подскажешь как модернизировать скрипт что бы 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>
Ответить с цитированием
  #7 (permalink)  
Старый 01.06.2018, 18:01
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,081

snut8,
++i % 3 || (ul = $("<ul>").insertAfter(ul))
Ответить с цитированием
  #8 (permalink)  
Старый 01.06.2018, 22:35
Новичок на форуме
Отправить личное сообщение для snut8 Посмотреть профиль Найти все сообщения от snut8
 
Регистрация: 01.06.2018
Сообщений: 8

Сообщение от рони Посмотреть сообщение
snut8,
++i % 3 || (ul = $("<ul>").insertAfter(ul))
огромное спасибо, вы действительно профессионал!
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
создание списка из объектов Blizz Ваши сайты и скрипты 2 25.02.2015 20:46
Создание списка из полей и ключей многомерного массива IntegralAL Events/DOM/Window 13 06.12.2013 17:01
Не работает скрипт отображения списка Konstantine Javascript под браузер 3 18.03.2013 06:00
Создание разноцветного списка Серджио Элементы интерфейса 7 08.10.2012 00:46
Динамическое создание списка <select> и обработка события двойного клика Kitana Элементы интерфейса 2 03.09.2011 17:23