Мой вопрос очень похож на ряд других, которые я нашел в Переполнении стека, но не совсем так.
Я бы хотел отсортировать элементы списка на основе содержимого диапазона, содержащегося в каждом элементе, но с использованием порядка сортировки, который я могу определить. Вот HTML-код для примера элемента списка:
<li>
<span class="fname">John</span>
<span class="lname">Doe</span>
<span class="year">Sophomore</span>
</li>
Я хочу отсортировать по содержанию интервала «год», но не в алфавитном, а в хронологическом порядке. Порядок, очевидно, должен быть:
- Первокурсник
- Sophomore
- Младший
- Старший
Как я могу это сделать?
Просто для справки, я использую следующий код 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);
};