Как получать число divs внутри Вашего элемента отец?

У меня есть следующая структура в моем DOM:

 <body>
   <div></div>
  <ul>
    <li><div></div><div></div></li>
    <li><div></div></li>
    <li></li>
  </ul>
  <div>
    <div>
      <div></div>
      <div>
        <div></div>
        <div></div>
        <div></div>
        <div></div>
      </div>
    </div>
  </div>
</body>

То, что я хочу реализовать используя Ванилья Хаваскрипт, состоит в том, чтобы получать число divs, который находит внутри каждого элемента отца включая tag body, я знаю, что он используя перекурсивную функцию, что я еще не понимаю очень хорошо Ваше использование.

Мой код JS до сих пор:

var getParents = function() {
    var elems = document.body.getElementsByTagName("*");
    for(i = 0; i < elems.length; i++) {
                return elems[i];
    }
}

Я надеюсь, что они могут помогать мне.

Привет!.

2
задан 13.07.2016, 04:41
4 ответа

Имея в виду, что ты упоминаешь в о комментарии , что то, что ты хочешь, состоит в том, чтобы добавлять счет в признаке data-, aquГ - я оставляю тебе возможность. Он состоит в делании следующего:

  • Верьте в список с body и все его потомки (используя querySelectorAll).
  • Для каждой составной части списка:
    • Верил в то, что data- так называемый признак data-num-divs (с 'setAttribute) и
    • AsГ-gnale как стоимость nГєmero div, которые снижаются Г©l (используя querySelectorAll)

, Чтобы выбирать все div этой ветви, deberГ-схвати делать что-то как querySelectorAll("div"), взамен, если sГіlo ты хочешь считать div, которые спускают прямо с этой составной части (sГіlo дети), тогда селектор serГ - в querySelectoAll(":scope > div").

Г‰ste - cГіdigo прокомментированный, инспектирует составные части, чтобы видеть результаты:

// seleciona una lista de elementos con el body y todos sus descendientes
var todos = document.querySelectorAll("body, body *");

// para cada elemento en la lista 
todos.forEach(function(elemento, indice, arreglo) {
  // crea un atributo data-num-divs y asigna el número de divs descendientes
  elemento.setAttribute("data-num-divs", elemento.querySelectorAll("div").length);
  
  // crea un atributo data-num-divs-hijos y asigna el número de divs descendientes directos
  elemento.setAttribute("data-num-divs-hijos", elemento.querySelectorAll(":scope > div").length);
});
<body>
  <div></div>
  <ul>
    <li><div></div><div></div></li>
    <li><div></div></li>
    <li></li>
  </ul>
  <div>
    <div>
      <div></div>
      <div>
        <div></div>
        <div></div>
        <div></div>
        <div></div>
      </div>
    </div>
  </div>
</body>
2
ответ дан 24.11.2019, 13:51
  • 1
    Сублимируйте, справедливое то, в чем он нуждался. Большое спасибо. – Alex 13.07.2016, 17:04

Это попробуй

// Selector Padre
var parent = document.querySelector('#parent');

// Cantidad de div
var divs = parent.querySelectorAll('div');
var cantidad = divs.length;

//Mostrar
//console.log('Cantidad de DIVS: '+cantidad);
document.write('Cantidad de DIVS: '+cantidad);
 <body id="parent">
   <div></div>
  <ul>
    <li><div></div><div></div></li>
    <li><div></div></li>
    <li></li>
  </ul>
  <div>
    <div>
      <div></div>
      <div>
        <div></div>
        <div></div>
        <div></div>
        <div></div>
      </div>
    </div>
  </div>
</body>
3
ответ дан 24.11.2019, 13:51

если ты хочешь получить полное количество divs в твоем html, ты можешь делать это следующим способом:

var divList = document.getElementsByTagName("div");
var total = divList.length;
alert("divs en total: "+total);
0
ответ дан 24.11.2019, 13:51
  • 1
    Спасибо за ответ, за чем оно последует, состоит в том, что нуждался насильно в элементах отец, и считать divs каждого из тех же самых, так как позже в том, чтобы добавлять, и # 233; восходи attribute. – Alex 13.07.2016, 05:08

Трюк - в usa собственность children

Примеры использования занося в список div, от которого он зависит <body>

var getParents = function() 
{
    var items = new Array();
  
    var elems = document.body.children;
  
    for(i = 0; i < elems.length; i++) 
    {
       if(elems[i].tagName == 'DIV')
           items.push(elems[i]);
    }
  
    return items;
}


var divs = getParents();

// se listan los elementos
for(i = 0; i < divs.length; i++) {
  alert(divs[i].tagName);
}

//conocer el nro de elementos
alert("Nro DIV: " + divs.length);
 <body>
   <div></div>
  <ul>
    <li><div></div><div></div></li>
    <li><div></div></li>
    <li></li>
  </ul>
  <div>
    <div>
      <div></div>
      <div>
        <div></div>
        <div></div>
        <div></div>
        <div></div>
      </div>
    </div>
  </div>
</body>
0
ответ дан 24.11.2019, 13:51

Теги

Похожие вопросы