Javascript 如何在页面加载时按字母顺序对HTML列表的内容进行排序?

Javascript 如何在页面加载时按字母顺序对HTML列表的内容进行排序?,javascript,jquery,html,sorting,html-lists,Javascript,Jquery,Html,Sorting,Html Lists,我已经看到了一些例子,但是没有找到一种在加载时对列表进行排序的方法 在Jennifer Perrin的示例中,她展示了如何使用两个链接进行排序—升序排序/降序排序 你能提供一个调整来代替页面加载吗 加价 jquery 只需在不使用单击功能的情况下使用此功能 $(document).ready(function() { var $sort = $('.asc'); var $list = $('#sort-list'); var $listLi = $('li',$list

我已经看到了一些例子,但是没有找到一种在加载时对列表进行排序的方法

在Jennifer Perrin的示例中,她展示了如何使用两个链接进行排序—升序排序/降序排序

你能提供一个调整来代替页面加载吗

加价

jquery


只需在不使用单击功能的情况下使用此功能

$(document).ready(function() {
    var $sort = $('.asc');
    var $list = $('#sort-list');
    var $listLi = $('li',$list);
    $listLi.sort(function(a, b){
        var keyA = $(a).text();
        var keyB = $(b).text();
        if($($sort).hasClass('asc')){
            return (keyA > keyB) ? 1 : 0;
        } else {
            return (keyA < keyB) ? 1 : 0;
        }
    });
    $.each($listLi, function(index, row){
        $list.append(row);
    });
    e.preventDefault();
});

这里我将$sort设置为asc。但是您可以从任何变量输入req值。希望这能起作用。谢谢

删除单击处理程序?如果有多个链接排序列表元素,则只需将单击替换为每个元素,即可完成设置。谢谢。我认为这会起作用,但该网站已经在使用yui进行重量排序。我以为jQ at会“赢”超控,但显然不是。在下面的示例中,至少该列表被放入接近递减的alpha。一个真正的麻烦。你需要处理$sort变量。将它更改为字符串没有帮助。
$(document).ready(function() {
$('.link-sort-list').click(function(e) {
    var $sort = this;
    var $list = $('#sort-list');
    var $listLi = $('li',$list);
    $listLi.sort(function(a, b){
        var keyA = $(a).text();
        var keyB = $(b).text();
        if($($sort).hasClass('asc')){
            return (keyA > keyB) ? 1 : 0;
        } else {
            return (keyA < keyB) ? 1 : 0;
        }
    });
    $.each($listLi, function(index, row){
        $list.append(row);
    });
    e.preventDefault();
});
});
$(document).ready(function() {
    var $sort = $('.asc');
    var $list = $('#sort-list');
    var $listLi = $('li',$list);
    $listLi.sort(function(a, b){
        var keyA = $(a).text();
        var keyB = $(b).text();
        if($($sort).hasClass('asc')){
            return (keyA > keyB) ? 1 : 0;
        } else {
            return (keyA < keyB) ? 1 : 0;
        }
    });
    $.each($listLi, function(index, row){
        $list.append(row);
    });
    e.preventDefault();
});