jQuery按span排序列表

时间:2011-11-30 23:05:37

标签: jquery html sorting

所以我有类似的东西:

<ul id="list">
<li class="item">
<a>
<span class="name> name1 </span>
</a>
<a>
<span class="name> name2 </span>
</a>
<a>
<span class="name> name3 </span>
</a>
</li>
</ul>

如何按字母顺序按名称对此列表进行排序?亲切的问候

3 个答案:

答案 0 :(得分:3)

试试这个插件:

http://james.padolsey.com/javascript/sorting-elements-with-jquery/

使用自定义比较器,如下所示:

$('li').sortElements(function(a, b){
    return $(a).find('.name').text() > $(b).find('.name').text() ? 1 : -1;
});

答案 1 :(得分:1)

  
$(function() {
    var names = elements = [];
    $('.item .name').each(function(i, item) {
        var name = $.trim($(this).text()) + '_' + i;
        names[i] = name;
        elements[name] = $(this).parent().remove().clone();
    });
    $.each(names.sort(),function(i, item) {
        $('.item').append(elements[item]);
    });
});

答案 2 :(得分:0)

对于简单的情况,您甚至不需要插件。这段代码对我有用,可以对链接列表进行排序:

function sortAlpha(a,b){
    return $(a).find('a').text().toLowerCase() > $(b).find('a').text().toLowerCase() ? 1 : -1;
};

$('#thelist li').sort(sortAlpha).appendTo('#thelist');

不需要使用此方法的span标记。

(基本的想法不是我自己的,我是从某个地方复制过来的,但是不记得从哪里来。)

相关问题