Выбрать элементы с data-*

Рейтинг: 0Ответов: 1Опубликовано: 14.11.2014

Приветствую.
Столкнулся с задачкой: надо дивы с одинаковыми значениями data-order обернуть врапером, с уникальным id.
Вот html:

<div class="schedule-day">
  <div class="hour" data-order="0044">1</div>
  <div class="hour" data-order="0044">2</div>
  <div class="hour" data-order="0044">3</div>

  <div class="hour">4</div>
  <div class="hour">5</div>
  <div class="hour">6</div>

  <div class="hour" data-order="0045">7</div>
  <div class="hour" data-order="0045">8</div>
  <div class="hour" data-order="0045">9</div>
</div>

Вот js:

var holder = $('.schedule-day');
var blocks = holder.find('.hour');
var tempVal;
var tempContainer;

blocks.each(function(){
    var val = $(this).attr('data-order');
    if (val != tempVal){
        tempContainer = $('<div class="wrapper"></div>');
        holder.append(tempContainer);
        tempVal = val;
    }
    tempContainer.append($(this));
})

Если бы такая конструкция была одна, то все было бы замечательно, но блоков с class="schedule-day" может быть сколько угодно, и вот в этом-то и проблема.

Пример на jsFiddle.

Ответы

▲ 1Принят

Вот так вот? http://jsfiddle.net/p89hkrrh/6/

В пределах одного ".schedule-day" оборачиваем ".wrapper"-ом сколь угодно элементов с уникальным с уникальным "data-order" и этому ".wrapper" - присваиваем уникальный идентификатор.