Вывод количества дочерних элементов

115
18 декабря 2020, 21:40

Есть меню с подменю, нужно с помощью JS посчитать количество подпунктов и вывести это число возле названия пункта. То есть возле пункта О нас нужно вывести число его дочерних пунктов, в данном случаи 3 Код:

<ul class="menu">
<li class="menu-item">Главная</li>
<li class="menu-item"><a href="#">О нас</a>
<ul class="sub-menu">
  <li class="menu1">О компании</li>
  <li class="menu2">Лицензии</li>
  <li class="menu3">Награды</li>
</ul></li></ul>
Answer 1

Обновлено

(function(){ 
 
let menuItem = document.getElementsByClassName('menu-item'); 
let num      = document.getElementsByClassName('num'); 
let count; 
for(let i = 0; i < menuItem.length; i++){ 
  count = menuItem[i].getElementsByTagName('li').length; 
  if( count != 0 ){ 
    num[i].innerHTML += ' (' + count  + ')'; 
  } 
} 
 
})();
<ul class="menu"> 
  <li class="menu-item">Главная<span class="num"></span></li> 
  <li class="menu-item"><a href="#">О нас</a><span class="num"></span> 
    <ul class="sub-menu"> 
      <li class="menu1">О компании</li> 
      <li class="menu2">Лицензии</li> 
      <li class="menu3">Награды</li> 
    </ul> 
  </li> 
</ul>

Answer 2

Используйте JQuery:

var count = $(".sub-menu li").length;

Или:

var count = $(".sub-menu").children().length;
READ ALSO
Как получить рандомный array и его значения и только его значения если он находиться ещё в одном масиве?

Как получить рандомный array и его значения и только его значения если он находиться ещё в одном масиве?

Взгляните на строчку thiscolor она на данный момент получает рандомный цвет из всех масивов

110
преобразовать csv в ассоциативный массив

преобразовать csv в ассоциативный массив

есть node js, с его помощью запускаю консольный скрипт

119
Как вывести все машины через wialon js api?

Как вывести все машины через wialon js api?

Нужно вывести все метки (машины докторов) на карту по токену, по примеру: https://sdkwialon

120