@viktorulyushev

Перебор элементов по 3 штуки?

У меня есть какой то список,предположим
<div class="catalog-page-products">
   <div class="products-view-block">
      ....
   </div>
   <div class="products-view-block">
      ....
   </div>
   <div class="products-view-block">
      ....
   </div>
   <div class="products-view-block">
      ....
   </div>
   <div class="products-view-block">
      ....
   </div>
</div>

В строке по 3 элемента
Мне нужно как то перебрать этот набор элементов,так чтобы для 1 и 3 элемента в строке добавлялся класс first и last,и так для всех строк

Как через each обрабатывать по 3 элемента?Т.е,берем сначала первые 3 элемента,добавляем в нем классы,затем идем к следующим 3 элементам и т.д
  • Вопрос задан
  • 188 просмотров
Решения вопроса 2
/*
 *  Returns an array of jQuery objects, grouped by specified number of elements.
 *  
 *    Say you have 17 <frameset> tags on your page...
 *  
 *    $('frameset').inGroupsOf(7); // => [ jQuery[0..6], jQuery[7..13], jQuery[14..16] ]
 *
 */
$.fn.inGroupsOf = function( countPerGroup ) {
    
    var groups = [], offset = 0, $group;
    
    while ( ($group = this.slice( offset, (countPerGroup + offset) )).length ) {
        groups.push( $group );
        offset += countPerGroup;
    }
    
    return groups;
};
Ответ написан
@AlexRas
Вот просто: https://jsfiddle.net/pfsfd9jp/

Можно и без js обойтись, если добавление классов не является обязательным, а нужно только стилизовать элементы: https://jsfiddle.net/pfsfd9jp/1/
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы