Сортировка элементов div на Javascript
Здравствуйте. Есть функция для сортировки div по значению в атрибуте data-views.
<div class="posts-rub">
<div class="cards" data-views="5"></div>
<div class="cards" data-views="11"></div>
<div class="cards" data-views="1"></div>
</div>
Сама функция работает, но сортирует дивы неправильно, они идут в следующем порядке: 1, 11, 5. Пробовал засунуть переменные в parseInt, но результата это не дало. Вот сама функция:
function sortable(cls, attr) {
var elements = document.querySelectorAll(cls),
len = elements.length,
parent = document.querySelector('.posts-rub'),
arrElements = [];
for(var i = 0; i < len; i++) {
arrElements.push({
dataAttr : elements[i].getAttribute(attr),
el: elements[i]
});
}
arrElements.sort(function(a, b){
return a.dataAttr > b.dataAttr ? 1 : -1;
});
for(var j = 0; j < len; j++) {
parent.appendChild(arrElements[j].el);
}
}
sortable('.cards', 'data-views');
В чем может быть проблема? Нужно чтобы дивы шли в порядке 1, 5, 11. То есть от меньшего к большему.
Источник: Stack Overflow на русском