按字母顺序排序

时间:2013-12-13 19:34:05

标签: javascript jquery sorting

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

$(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。

谢谢!

1 个答案:

答案 0 :(得分:2)

您的示例已经排序,因为资本&#39; L&#39;走在&#39; a&#39;之前用ASCII。也许你想添加toLowerCase()?

您应该将已排序的选项重新插入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/