Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 17.08.2022, 20:34
Аспирант
Отправить личное сообщение для Olga27 Посмотреть профиль Найти все сообщения от Olga27
 
Регистрация: 10.06.2021
Сообщений: 49

Как сформировать дерево программно, с помощью цикла foreach?
Здравствуйте, у меня массив, состоящий из нескольких вложенных друг в друга элементов. Вручную я создала дерево из тегов ol, li, ul. Вот что у меня получилось.
img_arr1.jpg
В коде массив, выглядит вот так:
img_arr2.jpg
Как создать этот массив программно, с помощью цикла foreach?

При этом массив должен сам формироваться при запуске скрипта, если я добавляю дополнительные элементы.

Мой код:
Ответить с цитированием
  #2 (permalink)  
Старый 17.08.2022, 20:34
Аспирант
Отправить личное сообщение для Olga27 Посмотреть профиль Найти все сообщения от Olga27
 
Регистрация: 10.06.2021
Сообщений: 49

Часть 1:
<!DOCTYPE html>
<html lang="en" >

<head>

  <meta charset="UTF-8">


  <title>Создание дерево из объекта</title>
  
</head>

<body >
  <div id="tree"></div>
  
 
      <script>
var data = {
  "response": [
    {
      "title":"test1",
      "status":"current",
      "text":"text1",
      "Discription":"Описание1",
      "photo":[
        {
          "big":
            {
              "status":"wait",
              "width":"772",
              "height":"960",
              "url":"https://site.ru/image/big_1_1.jpg"
            },
          "small":
            {
              "status":"wait",
              "width":"105",
              "height":"130",
              "url":"https://site.ru/image/small_1_1.jpg"
            }
        },
        {
          "big":
            {
              "status":"wait",
              "width":"774",
              "height":"960",
              "url":"https://site.ru/image/big_1_2.jpg"
            },
          "small":
            {
              "status":"wait",
              "width":"105",
              "height":"130",
              "url":"https://site.ru/image/small_1_2.jpg"
            }
        }
        
      ]
     },
     {
      "title":"test2",
      "status":"wait",
      "text":"text2",
      "Discription":"Описание2",
      "photo":[
        {
          "big":
            {
              "status":"wait",
              "width":"772",
              "height":"960",
              "url":"https://site.ru/image/big_2_1.jpg"
            },
          "small":
            {
              "status":"wait",
              "width":"105",
              "height":"130",
              "url":"https://site.ru/image/small_2_1.jpg"
            }
        },
        {
          "big":
            {
              "status":"wait",
              "width":"772",
              "height":"960",
              "url":"https://site.ru/image/big_2_2.jpg"
            },
          "small":
            {
              "status":"wait",
              "width":"105",
              "height":"130",
              "url":"https://site.ru/image/small_2_2.jpg"
            }
        },
        {
          "big":
            {
              "status":"wait",
              "width":"772",
              "height":"960",
              "url":"https://site.ru/image/big_2_3.jpg"
            },
          "small":
            {
              "status":"wait",
              "width":"105",
              "height":"130",
              "url":"https://site.ru/image/small_2_3.jpg"
            }
        },
        {
          "big":
            {
              "status":"wait",
              "width":"772",
              "height":"960",
              "url":"https://site.ru/image/big_2_4.jpg"
            },
          "small":
            {
              "status":"wait",
              "width":"105",
              "height":"130",
              "url":"https://site.ru/image/small_2_4.jpg"
            }
        }
        
      ]
     },
     {
      "title":"test3",
      "status":"wait",
      "text":"text3",
      "Discription":"Описание3",
      "photo":[
        {
          "big":
            {
              "status":"wait",
              "width":"772",
              "height":"960",
              "url":"https://site.ru/image/big_3_1.jpg"
            },
          "small":
            {
              "status":"wait",
              "width":"105",
              "height":"130",
              "url":"https://site.ru/image/small_3_1.jpg"
            }
        }
      ]
     },
     {
      "title":"test4",
      "status":"wait",
      "text":"text4",
      "Discription":"Описание4",
      "photo":[
        {
          "big":
            {
              "status":"wait",
              "width":"772",
              "height":"960",
              "url":"https://site.ru/image/big_4_1.jpg"
            },
          "small":
            {
              "status":"wait",
              "width":"105",
              "height":"130",
              "url":"https://site.ru/image/small_4_1.jpg"
            }
        }
      ]
     },
     {
      "title":"test5",
      "status":"wait",
      "text":"text5",
      "Discription":"Описание5",
      "photo":[
        {
          "big":
            {
              "status":"wait",
              "width":"772",
              "height":"960",
              "url":"https://site.ru/image/big_5_1.jpg"
            },
          "small":
            {
              "status":"wait",
              "width":"105",
              "height":"130",
              "url":"https://site.ru/image/small_5_1.jpg"
            }
        },
        {
          "big":
            {
              "status":"wait",
              "width":"772",
              "height":"960",
              "url":"https://site.ru/image/big_5_2.jpg"
            },
          "small":
            {
              "status":"wait",
              "width":"105",
              "height":"130",
              "url":"https://site.ru/image/small_5_2.jpg"
            }
        },
        {
          "big":
            {
              "status":"wait",
              "width":"772",
              "height":"960",
              "url":"https://site.ru/image/big_5_3.jpg"
            },
          "small":
            {
              "status":"wait",
              "width":"105",
              "height":"130",
              "url":"https://site.ru/image/small_5_3.jpg"
            }
        }
      ]
     },
     {
      "title":"test6",
      "status":"wait",
      "text":"text6",
      "Discription":"Описание6",
      "photo":[
        {
          "big":
            {
              "status":"wait",
              "width":"772",
              "height":"960",
              "url":"https://site.ru/image/big_6_1.jpg"
            },
          "small":
            {
              "status":"wait",
              "width":"105",
              "height":"130",
              "url":"https://site.ru/image/small_6_1.jpg"
            }
        },
        {
          "big":
            {
              "status":"wait",
              "width":"772",
              "height":"960",
              "url":"https://site.ru/image/big_6_2.jpg"
            },
          "small":
            {
              "status":"wait",
              "width":"105",
              "height":"130",
              "url":"https://site.ru/image/small_6_2.jpg"
            }
        },
        {
          "big":
            {
              "status":"wait",
              "width":"772",
              "height":"960",
              "url":"https://site.ru/image/big_6_3.jpg"
            },
          "small":
            {
              "status":"wait",
              "width":"105",
              "height":"130",
              "url":"https://site.ru/image/small_6_3.jpg"
            }
        },
        {
          "big":
            {
              "status":"wait",
              "width":"772",
              "height":"960",
              "url":"https://site.ru/image/big_6_3.jpg"
            },
          "small":
            {
              "status":"wait",
              "width":"105",
              "height":"130",
              "url":"https://site.ru/image/small_6_3.jpg"
            }
        }
      ]
     },
     {
      "title":"test7",
      "status":"wait",
      "text":"text7",
      "Discription":"Описание7",
      "photo":[
        {
          "big":
            {
              "status":"wait",
              "width":"772",
              "height":"960",
              "url":"https://site.ru/image/big_7_1.jpg"
            },
          "small":
            {
              "status":"wait",
              "width":"105",
              "height":"130",
              "url":"https://site.ru/image/small_7_1.jpg"
            }
        }
      ]
     },
     {
      "title":"test8",
      "status":"wait",
      "text":"text8",
      "Discription":"Описание8",
      "photo":[
        {
          "big":
            {
              "status":"wait",
              "width":"772",
              "height":"960",
              "url":"https://site.ru/image/big_8_1.jpg"
            },
          "small":
            {
              "status":"wait",
              "width":"105",
              "height":"130",
              "url":"https://site.ru/image/small_8_1.jpg"
            }
        },
        {
          "big":
            {
              "status":"wait",
              "width":"772",
              "height":"960",
              "url":"https://site.ru/image/big_8_2.jpg"
            },
          "small":
            {
              "status":"wait",
              "width":"105",
              "height":"130",
              "url":"https://site.ru/image/small_8_2.jpg"
            }
        },
        {
          "big":
            {
              "status":"wait",
              "width":"772",
              "height":"960",
              "url":"https://site.ru/image/big_8_3.jpg"
            },
          "small":
            {
              "status":"wait",
              "width":"105",
              "height":"130",
              "url":"https://site.ru/image/small_8_3.jpg"
            }
        }
      ]
     },
....
Ответить с цитированием
  #3 (permalink)  
Старый 17.08.2022, 20:35
Аспирант
Отправить личное сообщение для Olga27 Посмотреть профиль Найти все сообщения от Olga27
 
Регистрация: 10.06.2021
Сообщений: 49

Часть 2
{
      "title":"test9",
      "status":"wait",
      "text":"text9",
      "Discription":"Описание9",
      "photo":[
        {
          "big":
            {
              "status":"wait",
              "width":"772",
              "height":"960",
              "url":"https://site.ru/image/big_9_1.jpg"
            },
          "small":
            {
              "status":"wait",
              "width":"105",
              "height":"130",
              "url":"https://site.ru/image/small_9_1.jpg"
            }
        },
        {
          "big":
            {
              "status":"wait",
              "width":"772",
              "height":"960",
              "url":"https://site.ru/image/big_9_2.jpg"
            },
          "small":
            {
              "status":"wait",
              "width":"105",
              "height":"130",
              "url":"https://site.ru/image/small_9_2.jpg"
            }
        },
        {
          "big":
            {
              "status":"wait",
              "width":"772",
              "height":"960",
              "url":"https://site.ru/image/big_9_3.jpg"
            },
          "small":
            {
              "status":"wait",
              "width":"105",
              "height":"130",
              "url":"https://site.ru/image/small_9_3.jpg"
            }
        },
        {
          "big":
            {
              "status":"wait",
              "width":"772",
              "height":"960",
              "url":"https://site.ru/image/big_9_4.jpg"
            },
          "small":
            {
              "status":"wait",
              "width":"105",
              "height":"130",
              "url":"https://site.ru/image/small_9_4.jpg"
            }
        },
        {
          "big":
            {
              "status":"wait",
              "width":"772",
              "height":"960",
              "url":"https://site.ru/image/big_9_5.jpg"
            },
          "small":
            {
              "status":"wait",
              "width":"105",
              "height":"130",
              "url":"https://site.ru/image/small_9_5.jpg"
            }
        },
        {
          "big":
            {
              "status":"wait",
              "width":"772",
              "height":"960",
              "url":"https://site.ru/image/big_9_6.jpg"
            },
          "small":
            {
              "status":"wait",
              "width":"105",
              "height":"130",
              "url":"https://site.ru/image/small_9_6.jpg"
            }
        },
        {
          "big":
            {
              "status":"wait",
              "width":"772",
              "height":"960",
              "url":"https://site.ru/image/big_9_7.jpg"
            },
          "small":
            {
              "status":"wait",
              "width":"105",
              "height":"130",
              "url":"https://site.ru/image/small_9_7.jpg"
            }
        }
      ]
     },
     {
      "title":"test10",
      "status":"wait",
      "text":"test10",
      "Discription":"Описание10",
      "photo":[
        {
          "big":
            {
              "status":"wait",
              "width":"772",
              "height":"960",
              "url":"https://site.ru/image/big_10_1.jpg"
            },
          "small":
            {
              "status":"wait",
              "width":"105",
              "height":"130",
              "url":"https://site.ru/image/small_10_1.jpg"
            }
        },
        {
          "big":
            {
              "status":"wait",
              "width":"772",
              "height":"960",
              "url":"https://site.ru/image/big_10_2.jpg"
            },
          "small":
            {
              "status":"wait",
              "width":"105",
              "height":"130",
              "url":"https://site.ru/image/small_10_2.jpg"
            }
        },
        {
          "big":
            {
              "status":"wait",
              "width":"772",
              "height":"960",
              "url":"https://site.ru/image/big_10_3.jpg"
            },
          "small":
            {
              "status":"wait",
              "width":"105",
              "height":"130",
              "url":"https://site.ru/image/small_10_3.jpg"
            }
        },
        {
          "big":
            {
              "status":"wait",
              "width":"772",
              "height":"960",
              "url":"https://site.ru/image/big_10_4.jpg"
            },
          "small":
            {
              "status":"wait",
              "width":"105",
              "height":"130",
              "url":"https://site.ru/image/small_10_4.jpg"
            }
        },
        {
          "big":
            {
              "status":"wait",
              "width":"772",
              "height":"960",
              "url":"https://site.ru/image/big_10_5.jpg"
            },
          "small":
            {
              "status":"wait",
              "width":"105",
              "height":"130",
              "url":"https://site.ru/image/small_10_5.jpg"
            }
        }
      ]
     }
   ]
};

var posts = data["response"];

function make_tree() {   

  
  var tree = document.getElementById("tree");
  
 
  
  
  //response
  var cur_parent = document.createElement("ol");
  var cur_element = document.createElement("li");
  cur_element.innerHTML = "[response]";
  //Уровень 0 
  var level0 = document.createElement("ul");
  var data0 = document.createElement("li");
  
  var sub_level0 = document.createElement("ul");
  var title0 = document.createElement("li");
  var status0 = document.createElement("li");
  var text0 = document.createElement("li");
  var desc0 = document.createElement("li");
  var photo0 = document.createElement("li");
  
  //Фото 1
  var lvl0_photo0 = document.createElement("ul");
  var L0_photo0 = document.createElement("li");
  
  var lvl0_photo0_big = document.createElement("ul");
  var L0_photo0_big = document.createElement("li");
  
  var lvl0_photo0_big_data = document.createElement("ul");
  var L0_photo0_big_status = document.createElement("li");
  
  var L0_photo0_big_width = document.createElement("li");
  
  var L0_photo0_big_height = document.createElement("li");
  
  var L0_photo0_big_url = document.createElement("li");
  
  ////////////////
  var lvl0_photo0_small = document.createElement("ul");
  var L0_photo0_small = document.createElement("li");
  
  var lvl0_photo0_small_data = document.createElement("ul");
  
  var L0_photo0_small_status = document.createElement("li");
  
  var L0_photo0_small_width = document.createElement("li");
   
  var L0_photo0_small_height = document.createElement("li");
  
  var L0_photo0_small_url = document.createElement("li");
  //var L0_photo1 = document.createElement("li");
  var lvl0_photo1  = document.createElement("ul");
  var L0_photo1 = document.createElement("li"); 
  
  
  var lvl0_photo1_big = document.createElement("ul");
  var L0_photo1_big = document.createElement("li");
  
  var lvl0_photo1_big_data = document.createElement("ul");
  var L0_photo1_big_status = document.createElement("li");
  
  var L0_photo1_big_width = document.createElement("li");
  
  var L0_photo1_big_height = document.createElement("li");
  
  var L0_photo1_big_url = document.createElement("li");
  
  /////////////////
  var lvl0_photo1_small = document.createElement("ul");
  var L0_photo1_small = document.createElement("li");
  
  var lvl0_photo1_small_data = document.createElement("ul");
  
  var L0_photo1_small_status = document.createElement("li");
  
  var L0_photo1_small_width = document.createElement("li");
   
  var L0_photo1_small_height = document.createElement("li");
  
  var L0_photo1_small_url = document.createElement("li");
  
  //Уровень 1 
  var level1 = document.createElement("ul");
  var data1 = document.createElement("li");
  
  var sub_level1 = document.createElement("ul");
  var title1 = document.createElement("li");
  var status1 = document.createElement("li");
  var text1 = document.createElement("li");
  var desc1 = document.createElement("li");
  var photo1 = document.createElement("li");
  
....
Ответить с цитированием
  #4 (permalink)  
Старый 17.08.2022, 20:36
Аспирант
Отправить личное сообщение для Olga27 Посмотреть профиль Найти все сообщения от Olga27
 
Регистрация: 10.06.2021
Сообщений: 49

Часть 3:
var lvl1_photo0 = document.createElement("ul");
  var L1_photo0 = document.createElement("li");
  
  var lvl1_photo0_big = document.createElement("ul");
  var L1_photo0_big = document.createElement("li");
  
  var lvl1_photo0_big_data = document.createElement("ul");
  var L1_photo0_big_status = document.createElement("li");
  
  var L1_photo0_big_width = document.createElement("li");
  
  var L1_photo0_big_height = document.createElement("li");
  
  var L1_photo0_big_url = document.createElement("li");
  
  var lvl1_photo1 = document.createElement("ul");
  var L1_photo1 = document.createElement("li");
  
  
  //SMALL
  var lvl1_photo0_small = document.createElement("ul");
  var L1_photo0_small = document.createElement("li");
  
 
  
  var lvl1_photo0_small_data = document.createElement("ul");
  
  var L1_photo0_small_status = document.createElement("li");
  
  var L1_photo0_small_width = document.createElement("li");
   
  var L1_photo0_small_height = document.createElement("li");
  
  var L1_photo0_small_url = document.createElement("li");
  
  
  ////////BIG - 1
  var lvl1_photo1_big = document.createElement("ul");
  var L1_photo1_big = document.createElement("li");
  
  var lvl1_photo1_big_data = document.createElement("ul");
  
  //Уровень 2 
  var level2 = document.createElement("ul");
  var data2 = document.createElement("li");
  
  //Уровень 3 
  var level3 = document.createElement("ul");
  var data3 = document.createElement("li");
  
  //Уровень 4 
  var level4 = document.createElement("ul");
  var data4 = document.createElement("li");
  
  //Уровень 5 
  var level5 = document.createElement("ul");
  var data5 = document.createElement("li");
  
  //Уровень 6 
  var level6 = document.createElement("ul");
  var data6 = document.createElement("li");
  
  //Уровень 7 
  var level7 = document.createElement("ul");
  var data7 = document.createElement("li");
  
  //Уровень 8 
  var level8 = document.createElement("ul");
  var data8 = document.createElement("li");
  
  //Уровень 9 
  var level9 = document.createElement("ul");
  var data9 = document.createElement("li");
  
  //Уровень 10 
  var level10 = document.createElement("ul");
  var data10 = document.createElement("li");
  cur_parent.appendChild(cur_element);
  
  //0
  data0.innerHTML = "[0]";
  level0.appendChild(data0);
  level0.appendChild(sub_level0);
  sub_level0.appendChild(title0);
  title0.innerHTML = "[title] "+posts[0].title;
  
  sub_level0.appendChild(status0);
  status0.innerHTML = "[status] "+posts[0].status;
  
  sub_level0.appendChild(text0);
  text0.innerHTML = "[text] "+posts[0].text;
  
  sub_level0.appendChild(desc0);
  desc0.innerHTML = "[Description] "+posts[0].Discription;
  
  sub_level0.appendChild(photo0);
  photo0.innerHTML = "[photo]";
  
  sub_level0.appendChild(lvl0_photo0);
  
  lvl0_photo0.appendChild(L0_photo0);
  L0_photo0.innerHTML = "[0]";
  //desc0.innerHTML = "[Description] "+posts[0].Discription;
  
  lvl0_photo0.appendChild(lvl0_photo0_big);
  lvl0_photo0_big.appendChild(L0_photo0_big);
  L0_photo0_big.innerHTML = "[big]";
  
  lvl0_photo0_big.appendChild(lvl0_photo0_big_data);
  // level -> 0 | photo -> 0 | big -> 0 | status
  lvl0_photo0_big_data.appendChild(L0_photo0_big_status);
  L0_photo0_big_status.innerHTML = "[status] "+posts[0].photo[0].big.status;
  
  
   lvl0_photo0_big_data.appendChild(L0_photo0_big_width);
  L0_photo0_big_width.innerHTML = "[width] "+posts[0].photo[0].big.width;
  
  lvl0_photo0_big_data.appendChild(L0_photo0_big_height);
  L0_photo0_big_height.innerHTML = "[height] "+posts[0].photo[0].big.height;
  
  lvl0_photo0_big_data.appendChild(L0_photo0_big_url);
  L0_photo0_big_url.innerHTML = "[url] "+posts[0].photo[0].big.url;
  
  
  lvl0_photo0.appendChild(lvl0_photo0_small);
  lvl0_photo0_small.appendChild(L0_photo0_small);
  L0_photo0_small.innerHTML = "[small]";
  
  lvl0_photo0_small.appendChild(lvl0_photo0_small_data);
  lvl0_photo0_small_data.appendChild(L0_photo0_small_status);
  L0_photo0_small_status.innerHTML = "[status] "+posts[0].photo[0].small.status;
  
  
  lvl0_photo0_small_data.appendChild(L0_photo0_small_width);
  L0_photo0_small_width.innerHTML = "[width] "+posts[0].photo[0].small.width;
  
  lvl0_photo0_small_data.appendChild(L0_photo0_small_height);
  L0_photo0_small_height.innerHTML = "[height] "+posts[0].photo[0].small.height;
  
  lvl0_photo0_small_data.appendChild(L0_photo0_small_url);
  L0_photo0_small_url.innerHTML = "[url] "+posts[0].photo[0].small.url;
  //var lvl0_photo0_small = document.createElement("ul");
 // var L0_photo0_small = document.createElement("li");
 
  sub_level0.appendChild(lvl0_photo1);
  
  lvl0_photo0.appendChild(L0_photo1);
  L0_photo1.innerHTML = "[1]";
  
  
  lvl0_photo1.appendChild(lvl0_photo1_big);
  lvl0_photo1_big.appendChild(L0_photo1_big);
  L0_photo1_big.innerHTML = "[big]";
  
  lvl0_photo1_big.appendChild(lvl0_photo1_big_data);
  
  lvl0_photo1_big_data.appendChild(L0_photo1_big_status);
  L0_photo1_big_status.innerHTML = "[status] "+posts[0].photo[1].big.status;
  
  
  lvl0_photo1_big_data.appendChild(L0_photo1_big_width);
  L0_photo1_big_width.innerHTML = "[width] "+posts[0].photo[1].big.width;
  
  lvl0_photo1_big_data.appendChild(L0_photo1_big_height);
  L0_photo1_big_height.innerHTML = "[height] "+posts[0].photo[1].big.height;
  
  lvl0_photo1_big_data.appendChild(L0_photo1_big_url);
  L0_photo1_big_url.innerHTML = "[url] "+posts[0].photo[1].big.url;
  
  //SMALL
  lvl0_photo1.appendChild(lvl0_photo1_small);
  lvl0_photo1_small.appendChild(L0_photo1_small);
  L0_photo1_small.innerHTML = "[small]";
  
  lvl0_photo1_small.appendChild(lvl0_photo1_small_data);
  lvl0_photo1_small_data.appendChild(L0_photo1_small_status);
  L0_photo1_small_status.innerHTML = "[status] "+posts[0].photo[1].small.status;
  
  
  lvl0_photo1_small_data.appendChild(L0_photo1_small_width);
  L0_photo1_small_width.innerHTML = "[width] "+posts[0].photo[1].small.width;
  
  lvl0_photo1_small_data.appendChild(L0_photo1_small_height);
  L0_photo1_small_height.innerHTML = "[height] "+posts[0].photo[1].small.height;
  
  lvl0_photo1_small_data.appendChild(L0_photo0_small_url);
  L0_photo1_small_url.innerHTML = "[url] "+posts[0].photo[1].small.url;
  
  
  
  //1
  data1.innerHTML = "[1]";
  level1.appendChild(data1);
  
  level1.appendChild(sub_level1);
  sub_level1.appendChild(title1);
  title1.innerHTML = "[title] "+posts[0].title;
  
  sub_level1.appendChild(status1);
  status1.innerHTML = "[status] "+posts[0].status;
  
  sub_level1.appendChild(text1);
  text1.innerHTML = "[text] "+posts[0].text;
  
  sub_level1.appendChild(desc1);
  desc1.innerHTML = "[Description] "+posts[0].Discription;
  
  sub_level1.appendChild(photo1);
  photo1.innerHTML = "[photo]";
  
  sub_level1.appendChild(lvl1_photo0);
  
  lvl1_photo0.appendChild(L1_photo0);
  
  L1_photo0.innerHTML = "[0]";
  
  lvl1_photo0.appendChild(lvl1_photo0_big);
  lvl1_photo0_big.appendChild(L1_photo0_big);
  L1_photo0_big.innerHTML = "[big]";
  
  lvl1_photo0_big.appendChild(lvl1_photo0_big_data);
  // level -> 0 | photo -> 0 | big -> 0 | status
  lvl1_photo0_big_data.appendChild(L1_photo0_big_status);
  L1_photo0_big_status.innerHTML = "[status] "+posts[1].photo[0].big.status;
  
  
   lvl1_photo0_big_data.appendChild(L1_photo0_big_width);
  L1_photo0_big_width.innerHTML = "[width] "+posts[1].photo[0].big.width;
  
  lvl1_photo0_big_data.appendChild(L1_photo0_big_height);
  L1_photo0_big_height.innerHTML = "[height] "+posts[1].photo[0].big.height;
  
  lvl1_photo0_big_data.appendChild(L1_photo0_big_url);
  L1_photo0_big_url.innerHTML = "[url] "+posts[1].photo[0].big.url;
  //small
  lvl1_photo0.appendChild(lvl1_photo0_small);
  lvl1_photo0_small.appendChild(L1_photo0_small);
  L1_photo0_small.innerHTML = "[small]";
  
  lvl1_photo0_small.appendChild(lvl1_photo0_small_data);
  lvl1_photo0_small_data.appendChild(L1_photo0_small_status);
  L1_photo0_small_status.innerHTML = "[status] "+posts[1].photo[0].small.status;
  
  
  lvl1_photo0_small_data.appendChild(L1_photo0_small_width);
  L1_photo0_small_width.innerHTML = "[width] "+posts[1].photo[0].small.width;
  
  lvl1_photo0_small_data.appendChild(L1_photo0_small_height);
  L1_photo0_small_height.innerHTML = "[height] "+posts[1].photo[0].small.height;
  
  lvl1_photo0_small_data.appendChild(L1_photo0_small_url);
  L1_photo0_small_url.innerHTML = "[url] "+posts[1].photo[0].small.url;

....
Ответить с цитированием
  #5 (permalink)  
Старый 17.08.2022, 20:37
Аспирант
Отправить личное сообщение для Olga27 Посмотреть профиль Найти все сообщения от Olga27
 
Регистрация: 10.06.2021
Сообщений: 49

Часть 4:
// lvl0_photo1_small.appendChild(lvl0_photo1_small_data);
 //lvl0_photo1_small_data.appendChild(L0_photo1_small_status);
  //L0_photo1_small_status.innerHTML = "[status] "+posts[0].photo[1].small.status;
  
  
  //lvl0_photo1_small_data.appendChild(L0_photo1_small_width);
  //L0_photo1_small_width.innerHTML = "[width] "+posts[0].photo[1].small.width;
  
 // lvl0_photo1_small_data.appendChild(L0_photo1_small_height);
 // L0_photo1_small_height.innerHTML = "[height] "+posts[0].photo[1].small.height;
  
  //lvl0_photo1_small_data.appendChild(L0_photo0_small_url);
  //L0_photo1_small_url.innerHTML = "[url] "+posts[0].photo[1].small.url;
  
  ///////////
  sub_level1.appendChild(lvl1_photo1);
  
  lvl1_photo1.appendChild(L1_photo1);
  L1_photo1.innerHTML = "[1]";
  
  lvl1_photo1.appendChild(lvl1_photo1_big);
  lvl1_photo1_big.appendChild(L1_photo1_big);
  L1_photo1_big.innerHTML = "[big]";
  
  lvl1_photo1_big.appendChild(lvl1_photo1_big_data);
  
  
  //2
  data2.innerHTML = "[2]";
  level2.appendChild(data2);
  
  //3
  data3.innerHTML = "[3]";
  level3.appendChild(data3);
  
  //4
  data4.innerHTML = "[4]";
  level4.appendChild(data4);
  
  //5
  data5.innerHTML = "[5]";
  level5.appendChild(data5);
  
  //6
  data6.innerHTML = "[6]";
  level6.appendChild(data6);
  
  //7
  data7.innerHTML = "[7]";
  level7.appendChild(data7);
  
  //8
  data8.innerHTML = "[8]";
  level8.appendChild(data8);
  
  //9
  data9.innerHTML = "[9]";
  level9.appendChild(data9);
  
  //10
  data10.innerHTML = "[10]";
  level10.appendChild(data10);
  
  
  cur_parent.appendChild(level0);
  cur_parent.appendChild(level1);
  cur_parent.appendChild(level2);
  cur_parent.appendChild(level3);
  cur_parent.appendChild(level4);
  cur_parent.appendChild(level5);
  cur_parent.appendChild(level6);
  cur_parent.appendChild(level7);
  cur_parent.appendChild(level8);
  cur_parent.appendChild(level9);
  cur_parent.appendChild(level10);
  tree.appendChild(cur_parent);
  
  

}

make_tree();



    </script>

  

</body>

</html>


Внимание: объединив все куски, код будет работать.

P.S. Ограничение в количестве символов на один пост. Пришлось вот так:
Ответить с цитированием
  #6 (permalink)  
Старый 17.08.2022, 20:42
Аспирант
Отправить личное сообщение для Olga27 Посмотреть профиль Найти все сообщения от Olga27
 
Регистрация: 10.06.2021
Сообщений: 49

Прикрепляю файл с кодом для скачивания:
ex.zip
Ответить с цитированием
  #7 (permalink)  
Старый 17.08.2022, 22:04
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,068

дерево из объекта
Olga27,
не надо простыней, будьте лаконичней)))
<!DOCTYPE html>
<html>
<head>
    <title>Untitled</title>
    <meta charset="utf-8">
    <style type="text/css">
    </style>
    <script>
        let data = {
            "response": [{
                    "title": "test1",
                    "status": "current",
                    "text": "text1",
                    "Discription": "Описание1",
                    "photo": [{
                            "big": {
                                "status": "wait",
                                "width": "772",
                                "height": "960",
                                "url": "https://site.ru/image/big_1_1.jpg"
                            },
                            "small": {
                                "status": "wait",
                                "width": "105",
                                "height": "130",
                                "url": "https://site.ru/image/small_1_1.jpg"
                            }
                        },
                        {
                            "big": {
                                "status": "wait",
                                "width": "774",
                                "height": "960",
                                "url": "https://site.ru/image/big_1_2.jpg"
                            },
                            "small": {
                                "status": "wait",
                                "width": "105",
                                "height": "130",
                                "url": "https://site.ru/image/small_1_2.jpg"
                            }
                        }
                    ]
                },
                {
                    "title": "test2",
                    "status": "wait",
                    "text": "text2",
                    "Discription": "Описание2",
                    "photo": [{
                            "big": {
                                "status": "wait",
                                "width": "772",
                                "height": "960",
                                "url": "https://site.ru/image/big_2_1.jpg"
                            },
                            "small": {
                                "status": "wait",
                                "width": "105",
                                "height": "130",
                                "url": "https://site.ru/image/small_2_1.jpg"
                            }
                        },
                        {
                            "big": {
                                "status": "wait",
                                "width": "772",
                                "height": "960",
                                "url": "https://site.ru/image/big_2_2.jpg"
                            },
                            "small": {
                                "status": "wait",
                                "width": "105",
                                "height": "130",
                                "url": "https://site.ru/image/small_2_2.jpg"
                            }
                        },
                        {
                            "big": {
                                "status": "wait",
                                "width": "772",
                                "height": "960",
                                "url": "https://site.ru/image/big_2_3.jpg"
                            },
                            "small": {
                                "status": "wait",
                                "width": "105",
                                "height": "130",
                                "url": "https://site.ru/image/small_2_3.jpg"
                            }
                        },
                        {
                            "big": {
                                "status": "wait",
                                "width": "772",
                                "height": "960",
                                "url": "https://site.ru/image/big_2_4.jpg"
                            },
                            "small": {
                                "status": "wait",
                                "width": "105",
                                "height": "130",
                                "url": "https://site.ru/image/small_2_4.jpg"
                            }
                        }
                    ]
                }
            ]
        };
    </script>
</head>
<body>
    <div id="tree"></div>
    <script>
        function recursiveList(data) {
            let html = Object.entries(data).map(([key, value]) => {
                let type = typeof value;
                let li = document.createElement("li");
                li.textContent = `[${key}]`;
                if (type === "object") {
                    let ul = document.createElement("UL");
                    value = recursiveList(value);
                    ul.append(...value);
                    li.append(ul);
                } else {
                    li.textContent += ` ${value}`;
                }
                return li;
            })
            return html
        }
        let html = recursiveList(data);
        tree.append(...html);
    </script>
</body>
</html>

Последний раз редактировалось рони, 17.08.2022 в 22:16.
Ответить с цитированием
  #8 (permalink)  
Старый 17.08.2022, 22:17
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,068

Olga27,
обновите страницу перед копированием, внесены правки.
Ответить с цитированием
  #9 (permalink)  
Старый 18.08.2022, 11:40
Аспирант
Отправить личное сообщение для Olga27 Посмотреть профиль Найти все сообщения от Olga27
 
Регистрация: 10.06.2021
Сообщений: 49

Все работает, а как изменить цвет параметра status, чтобы при построении дерева у wait, current и ok были разные цвета. Кроме того у дерева верхнего уровня были одни цета, а более низкого уровня картинки photo были другие цвета. Пример цветов в комментариях. Думаю сначала нужно придать этим узлам <li>, значение через setAttribute, а потом использовать стили?
.....
"response": [
                  {
                    "title":"test1",
                    "status":"current",  //current --> #767474 | wait --> #E51012 | ok --> #1DDD32
                    "text":"text1",
                    "Discription":"Описание1",
                    "photo":[
                      {
                        "big":
                          {
                            "status":"wait", //current --> #808080 | wait --> #FF0000 | ok --> #00FF00
                            "width":"772",
                            "height":"960",
                            "url":"https://site.ru/image/big_1_1.jpg"
                          },
                        "small":
                          {
                            "status":"ok", //current --> #808080 | wait --> #FF0000 | ok --> #00FF00
                            "width":"105",
                            "height":"130",
                            "url":"https://site.ru/image/small_1_1.jpg"
                          }
                      },

.....
Ответить с цитированием
  #10 (permalink)  
Старый 18.08.2022, 12:29
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,068

Сообщение от Olga27
у wait, current и ok были разные цвета. Кроме того у дерева верхнего уровня были одни цета, а более низкого уровня картинки photo были другие цвета.
оттенки еле уловимые, вашему зрению можно позавидовать)))
<!DOCTYPE html>
<html>

<head>
    <title>Untitled</title>
    <meta charset="utf-8">
    <style type="text/css">
    </style>
    <script>
        let data = {
            "response": [{
                    "title": "test1",
                    "status": "current",
                    "text": "text1",
                    "Discription": "Описание1",
                    "photo": [{
                            "big": {
                                "status": "wait",
                                "width": "772",
                                "height": "960",
                                "url": "https://site.ru/image/big_1_1.jpg"
                            },
                            "small": {
                                "status": "wait",
                                "width": "105",
                                "height": "130",
                                "url": "https://site.ru/image/small_1_1.jpg"
                            }
                        },
                        {
                            "big": {
                                "status": "wait",
                                "width": "774",
                                "height": "960",
                                "url": "https://site.ru/image/big_1_2.jpg"
                            },
                            "small": {
                                "status": "wait",
                                "width": "105",
                                "height": "130",
                                "url": "https://site.ru/image/small_1_2.jpg"
                            }
                        }
                    ]
                },
                {
                    "title": "test2",
                    "status": "ok",
                    "text": "text2",
                    "Discription": "Описание2",
                    "photo": [{
                            "big": {
                                "status": "wait",
                                "width": "772",
                                "height": "960",
                                "url": "https://site.ru/image/big_2_1.jpg"
                            },
                            "small": {
                                "status": "ok",
                                "width": "105",
                                "height": "130",
                                "url": "https://site.ru/image/small_2_1.jpg"
                            }
                        },
                        {
                            "big": {
                                "status": "current",
                                "width": "772",
                                "height": "960",
                                "url": "https://site.ru/image/big_2_2.jpg"
                            },
                            "small": {
                                "status": "wait",
                                "width": "105",
                                "height": "130",
                                "url": "https://site.ru/image/small_2_2.jpg"
                            }
                        },
                        {
                            "big": {
                                "status": "wait",
                                "width": "772",
                                "height": "960",
                                "url": "https://site.ru/image/big_2_3.jpg"
                            },
                            "small": {
                                "status": "wait",
                                "width": "105",
                                "height": "130",
                                "url": "https://site.ru/image/small_2_3.jpg"
                            }
                        },
                        {
                            "big": {
                                "status": "wait",
                                "width": "772",
                                "height": "960",
                                "url": "https://site.ru/image/big_2_4.jpg"
                            },
                            "small": {
                                "status": "wait",
                                "width": "105",
                                "height": "130",
                                "url": "https://site.ru/image/small_2_4.jpg"
                            }
                        }
                    ]
                }
            ]
        };
    </script>
</head>

<body>
    <div id="tree"></div>
    <script>
         const recursiveList = ((ul, li, data, color = {"current" : "#767474", "wait" : "#E51012", "ok" : "#1DDD32"}) => {
            const html = Object.entries(data).map(([key, value]) => {
                const item = li.cloneNode();
                item.textContent = `[${key}]`;
                if(key === "status") item.style.backgroundColor = color[value];
                if(key === "photo") color = {"current" : "#808080", "wait" : "#FF0000", "ok" : "#00FF00"};
                value = (typeof value === "object") ? recursiveList(value, color) : ` ${value}`;
                item.append(value);
                return item;
            });
            const list = ul.cloneNode();
            list.append(...html);
            return list;
        }).bind(null, document.createElement("UL"), document.createElement("li"));
        const html = recursiveList(data);
        tree.append(html);
    </script>
</body>

</html>
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как изменить Select с помощью JS Alex921 Общие вопросы Javascript 4 04.01.2016 16:55
Как распарсить данные с помощью React.js? Heisenberg Библиотеки/Тулкиты/Фреймворки 1 17.11.2015 16:43
Как передавать данные из цикла php в javascript dfinchenko Элементы интерфейса 2 26.09.2015 15:06
Почему ошибка при статусе 200, или как сформировать ответ? [NodeJS&AJAX] blacklool AJAX и COMET 2 10.03.2015 21:36
Как создать двумерный массив с помощью циклов. dima*** Ваши сайты и скрипты 30 16.12.2012 13:58