我正在寻找一种可以按字母顺序对选项值进行排序的算法。
$(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"));
});
关于javascript - 字母字符串排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20574541/