$("#buttonSort").click(function () {
if ($('#SortByName').is(':checked')) {
var mylist = $('.entered_data');
var listitems = mylist.children('div').get();
console.log(listitems);
console.log(typeof listitems);
listitems.sort(function (a, b) {
var compA = $(a).text();
var compB = $(b).text();
return (compA < compB) ? -1 : (compA > compB) ? 1 : 0;
});
$.each(listitems, function (idx, itm) {
mylist.append(itm);
});
}
else if ($('#SortByDateStart').is(':checked')) {
$('.entered_data').each(function () {
var startdate = $(this);
var startdateitm = startdate.find('h3').get();
console.log(startdateitm);
console.log(typeof startdateitm);//1
var text2 = $(startdateitm).text();
console.log(text2);
console.log(typeof text2);//2
var text22 = text2.split(/(?=(?:\d{4})+(?!\d))/);
console.log(text22);
console.log(typeof text22);//3
var map = text22.map(function (e, i) {
return {index: i, value: e};
});
console.log(map);
console.log(typeof map);//4
map.sort(function (a, b) {
return new Date(a.value).getTime() - new Date(b.value).getTime();
});
console.log(map);
console.log(typeof map);//5
var result = map.map(function (e) {
return text22[e.index];
});
console.log(result);
console.log(typeof result);//6
$.each(result, function (idx, itm) {
$('.entered_data').append(itm);
});
});
}
Есть код сортировки элементов по именам и по датам. По имени сортировка происходит, по датам - нет, отсортированные данные выводятся внизу блока. Как это можно исправить?