在这里我正在使用javascript对字母数字字符串值进行排序。但是它仅对字符串进行排序。我需要的是从字符串中拆分数字值并对数字值进行排序。这是我的代码

 function sortUnorderedList(ul, sortDescending) {
        if (typeof ul == "string")
            ul = document.getElementById(ul);

        var lis = ul.getElementsByTagName("li");
        var vals = [];
        for (var i = 0, l = lis.length; i < l; i++)
            vals.push(lis[i].innerHTML);

        vals.sort();

        if (sortDescending)
            vals.reverse();

        for (var i = 0, l = lis.length; i < l; i++)
            lis[i].innerHTML = vals[i];
    }


有什么建议吗?

编辑:当前结果

PPG 101
PPG 102
PPG 57
PPG 58
PPG 99


预期结果:

PPG 57
PPG 58
PPG 99
PPG 101
PPG 102

最佳答案

若要执行数字排序,必须在调用sort方法时将函数作为参数传递。

vals.sort(function(a, b) {
    return (a-b);
});


有关更多详细信息,请参见http://www.javascriptkit.com/javatutors/arraysort.shtml

10-06 13:08