Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   Дочерные элементы в div (https://javascript.ru/forum/jquery/70626-dochernye-ehlementy-v-div.html)

klifort 20.09.2017 15:52

Дочерные элементы в div
 
Есть список

<div class="top_block_portf">
   <div class="ih-item"></div>
   <div class="ih-item"></div>
   <div class="ih-item"></div>
   <div class="ih-item"></div>
</div>

который я обворачиваю в div с класом new1 если .ih-item больше n. получаю такой код -

<div class="top_block_portf">
   <div class="new1">
     <div class="ih-item"></div>
     <div class="ih-item"></div>
   </div>
   <div class="new1">
     <div class="ih-item"></div>
     <div class="ih-item"></div>
   </div>
</div>

а потом для .ih-item в блоке .new1 добавляю класс - first, second, next


var quality = 27;

function portfolioBlock() {
  var divs = $(".ih-item");
  for(var i = 0; i < divs.length; i+=quality) {
    divs.slice(i, i+quality).wrapAll("<div class='new1'></div>");
  }
  var newBl = $(".new1");
  var new1 = new Array;
  newBl.each( function( index) {
    blockPort();
  });
  console.log(newBl);
};

function blockPort() {
  var arrDiv = new Array;
  var arrDiv = $('.new1').find('.ih-item');
    arrDiv[0].classList.add("first");
    arrDiv[14].classList.add("second");
    arrDiv[26].classList.add("next");
  console.log(arrDiv);
 }


На практике выходит что только в первом блоке я добавляю класс - first, second, next, а для второго .new1 не добавляет
Заметил что при выборе .ih-item в массив попадает все блоки как с первого так и со второго .new1


Как написать чтоб для каждого .new1 работало.

рони 20.09.2017 16:06

klifort,
var quality = 27;

function portfolioBlock() {
  var divs = $(".ih-item");
  for(var i = 0; i < divs.length; i+=quality) {
    divs.slice(i, i+quality).wrapAll("<div class='new1'></div>");
  }
  var newBl = $(".new1");
  var new1 = new Array;
  newBl.each( function( index, el) {
    blockPort(el);
  });
  console.log(newBl);
};

function blockPort(el) {
  var arrDiv = $('.ih-item', el);
    arrDiv[0].classList.add("first");
    arrDiv[14].classList.add("second");
    arrDiv[26].classList.add("next");
  console.log(arrDiv);
 }


Часовой пояс GMT +3, время: 16:48.