按字母顺序排列字符串

Alphabetical string sort

本文关键字:排列 字符串 顺序      更新时间:2023-09-26

我正在寻找一种按字母顺序对选项值进行排序的算法。

$(this).html($("option", $(this)).sort(function(a, b) { 
    return a.text == b.text ? 0 : a.text < b.text ? -1 : 1 
}));

有了上面的代码,它似乎可以工作,但一旦我介绍了多个作品,排序就会变得不可预测。

举个例子,我正试图对其进行排序:

<select class='whatever'>
    <option value='Lorem dva'>Lorem dva</option>
    <option value='a1'>a1</option>
    <option value='pl1'>pl1</option>
</select>

我正在使用jQuery。

谢谢!

您的示例已经排序,因为ASCII中大写字母"L"位于"a"之前。也许你想添加到LowerCase()?

您应该将排序后的选项重新插入DOM:

$(document).ready(function () {
    $(this).html($("option", $(this)).sort(function (a, b) {
        return a.text == b.text ? 0 : a.text < b.text ? -1 : 1
    }).appendTo(".whatever"));
});

http://jsfiddle.net/5zpTu/3/