Мой вопрос очень похож на ряд других, которые я нашел на Stack Overflow, но не совсем то же самое.
Я хотел бы отсортировать элементы списка на основе содержимого диапазона, содержащегося в каждом элементе, но используя порядок сортировки, который я могу определить. Вот HTML-код примера элемента списка:
<li>
<span class="fname">John</span>
<span class="lname">Doe</span>
<span class="year">Sophomore</span>
</li>
Я хочу отсортировать по содержанию "года", но в хронологическом порядке, а не в алфавитном порядке. Очевидно, что порядок должен быть следующим:
Как я могу это сделать?
Для справки, я использую следующий код jQuery ( который отлично работает) для сортировки в алфавитном порядке по фамилии:
function sortByLastName(){
var myList = $('#foo ul');
var listItems = myList.children('li').get();
listItems.sort(function(a,b){
var compA = $(a).find('.lname').text().toUpperCase();
var compB = $(b).find('.lname').text().toUpperCase();
return (compA < compB) ? -1 : (compA > compB) ? 1 : 0;
});
$(myList).append(listItems);
};