我的問題與我在堆棧溢出中找到的其他許多其他問題非常相似,但不完全相同。如何使用jQuery中的自定義排序順序對列表項進行排序
我想基於每個項目中包含的跨度內容對列表項進行排序 - 但使用我可以定義的排序順序。下面是一個樣本列表項的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);
};
提供您的代碼,請 –