Ответили на тот же вопрос здесь:
Для репостов:
После поиска множества решений я решил написать в блоге о том, как сортировать в jquery . Таким образом, шаги для сортировки jquery "массивоподобных" объектов по атрибуту данных ...
- выбрать все объекты с помощью селектора jquery
- преобразовать в фактический массив (не в массив, похожий на объект jquery)
- сортировка массива объектов
- преобразовать обратно в объект jquery с массивом объектов dom
Html
<div class="item" data-order="2">2</div>
<div class="item" data-order="1">1</div>
<div class="item" data-order="4">4</div>
<div class="item" data-order="3">3</div>
Простой селектор jquery
$('.item');
[<div class="item" data-order="2">2</div>,
<div class="item" data-order="1">1</div>,
<div class="item" data-order="4">4</div>,
<div class="item" data-order="3">3</div>
]
Позволяет отсортировать по порядку данных
function getSorted(selector, attrName) {
return $($(selector).toArray().sort(function(a, b){
var aVal = parseInt(a.getAttribute(attrName)),
bVal = parseInt(b.getAttribute(attrName));
return aVal - bVal;
}));
}
> getSorted('.item', 'data-order')
[<div class="item" data-order="1">1</div>,
<div class="item" data-order="2">2</div>,
<div class="item" data-order="3">3</div>,
<div class="item" data-order="4">4</div>
]
Посмотрите, как работает getSorted ().
Надеюсь, это поможет!