我有这个清单:
<ul id="demoOne" class="demo">
<li><a href='http://site/Service.aspx?shId=1154'>Dhenie fotokopje aktesh nga dosja 12</a></li>
<li><a href='http://site/Service.aspx?shId=1155'>Depozitim kerkesash Ankimore/Rekurse
kunder vendimeve civile/penale 12</a></li>
<li><a href='http://site/Service.aspx?shId=1156'>Dhenie Vendimesh12</a></li>
<li><a href='http://site/Service.aspx?shId=1157'>Integrimi i Ish te Perndjekurve Polikite
12</a> </li>
<li><a href='http://site/Service.aspx?shId=1158'>Dhenie Drejtesie</a></li>
<li><a href='http://site/Service.aspx?shId=1159'>Gjykata e Rrethit Gjyqësor Lezhë ushtron
juridiksionin gjyqësor civil dhe penal në territorin e qarkut Lezhë të Republikës
së Shqipërisë.</a></li>
</ul>
我想使用锚文本而不是li文本按字母顺序对此列表进行排序。 怎么做?
我正在使用此脚本按li文本对其进行排序
function sortUnorderedList(ul, sortDescending) {
var items = $('.demo li').get();
items.sort(function(a,b){
var keyA = $(a).text();
var keyB = $(b).text();
if (keyA < keyB) return -1;
if (keyA > keyB) return 1;
return 0;
var keyA = $(a).text();
var keyB = $(b).text();
if (keyA < keyB) return -1;
if (keyA > keyB) return 1;
return 0;
});
var ul = $('.demo');
$.each(items, function(i, li){
ul.append(li);
});
}
答案 0 :(得分:11)
试试这个:
$(function() {
$.fn.sortList = function() {
var mylist = $(this);
var listitems = $('li', mylist).get();
listitems.sort(function(a, b) {
var compA = $(a).text().toUpperCase();
var compB = $(b).text().toUpperCase();
return (compA < compB) ? -1 : 1;
});
$.each(listitems, function(i, itm) {
mylist.append(itm);
});
}
$("ul#demoOne").sortList();
});
答案 1 :(得分:5)
您可以使用sort
方法。
$('#demoOne li').sort(function(a, b){
return $('a', a).text() > $('a', b).text()
}).appendTo('#demoOne');
答案 2 :(得分:1)
您可以使用jQuery获取所有li
。然后使用toArray
获取javascript本机数组。您可以使用sort
方法对数组进行排序,并提供与您的需求相对应的排序功能。