Moje pytanie jest bardzo podobne do wielu innych, które znalazłem w Stack Overflow, ale nie do końca tak samo.Jak sortować elementy listy za pomocą niestandardowego porządku sortowania w jQuery
Chciałbym posortować elementy listy na podstawie zawartości rozpiętości zawartej w każdym z elementów - ale używając kolejności sortowania, którą mogę zdefiniować. Oto kod HTML do elementu listy próbki:
<li>
<span class="fname">John</span>
<span class="lname">Doe</span>
<span class="year">Sophomore</span>
</li>
chcę sortować na podstawie zawartości „rok” rozpiętości, ale zamiast chronologicznie alfabetycznie. Kolejność, oczywiście, musi być:
- Freshman
- Sophomore
- Junior
- Starszy
Jak mogę to zrobić?
Tylko dla odniesienia, używam następujący kod jQuery (która działa perfekcyjnie), aby sortować alfabetycznie według nazwiska:
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);
};
podać swój kod proszę –