4

我有这个清单:

<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);
        });
    }
4

3 回答 3

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();

});
于 2012-11-15T09:56:34.527 回答
5

你可以使用sort方法。

$('#demoOne li').sort(function(a, b){
     return $('a', a).text() > $('a', b).text()
}).appendTo('#demoOne');

http://jsfiddle.net/w3jfF/

于 2012-11-15T09:49:09.887 回答
1

您可以使用 jQuery 来获取所有li. 然后用于 toArray获取一个 javascript 原生数组。您可以使用该sort方法对数组进行排序,并提供与您的需求相对应的排序功能。

于 2012-11-15T09:45:24.443 回答