I don't fully understand what I didn't add to the code to make it work
This code should write the number of elements in the nested list in the element in which they are
<ul>
<li>Животные [9]</li>
<ul>
<li>Млекопитающие [4]</li>
<ul>
<li>Коровы</li>
<li>Ослы</li>
<li>Собаки</li>
<li>Тигры</li>
</ul>
<li>Другие [3]</li>
<ul>
<li>Змеи</li>
<li>Птицы</li>
<li>Ящерицы</li>
</ul>
</li>
</ul>
<li>Рыбы [5]</li>
<ul>
<ul><li>Аквариумные [2]</li>
<ul>
<li>Гуппи</li>
<li>Скалярии</li>
</ul>
<ul><li>Морские [1]</li>
<ul>
<li>Морская форель</li>
</ul>
</ul>
</ul>
The potential result is shown above
let ul = document.querySelectorAll('ul')
for (var variable in ul) {
if (object.hasOwnProperty(variable)) {
if (ul.firstElementChild(variable)) {
document.createElement('li')
ul.innerHTML = ul.length
ul.append('ul')
}
}
}
0
Author: Alexander_Sky, 2020-12-09
2 answers
let lis = document.querySelectorAll('li');
for(let li of lis){
if(li.querySelector('li')){
let span = document.createElement('span');
span.innerHTML = `[${li.querySelectorAll('li').length}]`;
li.insertBefore(span,li.querySelector('ul'));
}
}
<ul>
<li><span>Животные</span>
<ul>
<li><span>Млекопитающие</span>
<ul>
<li><span>Коровы</span></li>
<li><span>Ослы</span></li>
<li><span>Собаки</span></li>
<li><span>Тигры</span></li>
</ul>
</li>
<li><span>Другие</span>
<ul>
<li><span>Змеи</span></li>
<li><span>Птицы</span></li>
<li><span>Ящерицы</span></li>
</ul>
</li>
</ul>
</li>
<li><span>Рыбы</span>
<ul>
<li><span>Аквариумные</span>
<ul>
<li><span>Гуппи</span></li>
<li><span>Скалярии</span></li>
</ul>
</li>
<li><span>Морские</span>
<ul>
<li><span>Морская форель</span></li>
</ul>
</li>
</ul>
</li>
</ul>
1
Author: DiD, 2020-12-09 15:46:09
let uls = document.querySelectorAll('ul')
uls.forEach(ul => ul.innerHTML = ul.children.length);
<ul><li/><li/><li/></ul>
<ul><li/><li/></ul>
2
Author: Igor, 2020-12-09 15:32:04