Mi pregunta es muy similar a la cantidad de otras que he encontrado en Desbordamiento de pila, pero no exactamente igual.Cómo ordenar elementos de la lista usando un orden personalizado en jQuery
Me gustaría ordenar elementos de la lista en función del contenido de un lapso contenido en cada elemento, pero utilizando un orden de clasificación que puedo definir. Aquí está el código HTML para un elemento de la lista de ejemplo:
<li>
<span class="fname">John</span>
<span class="lname">Doe</span>
<span class="year">Sophomore</span>
</li>
que desea ordenar en base al contenido de la extensión "año", pero en lugar de cronológicamente por orden alfabético. El orden, obviamente, tiene que ser:
- Freshman
- Sophomore
- junior
- Superior
¿Cómo puedo hacer esto?
Sólo como referencia, estoy usando el siguiente código de jQuery (que funciona perfectamente) para ordenar alfabéticamente por el apellido:
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);
};
proporcionar su código favor –