Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 20.09.2017, 15:52
Аватар для klifort
Новичок на форуме
Отправить личное сообщение для klifort Посмотреть профиль Найти все сообщения от klifort
 
Регистрация: 09.06.2017
Сообщений: 3

Дочерные элементы в 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 работало.
Ответить с цитированием
  #2 (permalink)  
Старый 20.09.2017, 16:06
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,068

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);
 }
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Добавить в div одиннаковые элементы AlexTrader Общие вопросы Javascript 11 03.08.2017 16:35
Как вернуть div и все вложенные в него элементы в первоначальное состояние? lucky89 Общие вопросы Javascript 17 26.02.2015 18:41
div перекрывает элементы формы kazakn Элементы интерфейса 4 02.04.2013 16:10
Добавить элементы в div и обрабатывать события по ним. Возможно? Smith324 Events/DOM/Window 2 15.02.2013 05:18
при изменении размера div элементы съезжают gallyamov jQuery 5 22.08.2012 10:24