javascript - 字母字符串排序

标签 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。

谢谢!

最佳答案

您的示例已经排序,因为在 ASCII 中大写字母“L”位于“a”之前。也许您想添加 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/

关于javascript - 字母字符串排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20574541/

相关文章:

javascript - 在 jQuery 中模拟超链接单击以启动表单

javascript - 当 IP 没有响应时, react native ping 所有主机都会停止

javascript - jQuery - 动态更改具有相同 id 标签类名的元素

javascript - 使用 JQuery 的意外 token 函数

javascript - 随机横幅/ slider

sorting - 按值对哈希进行排序

python - 在 python 中按频率值排序列表

javascript - 将元素定位在另一个高度时防止重叠

javascript - HTML 到 JS 数据表 : Still show a removed row after sorting or page size change?

MySQL 对计算进行排序