我正在寻找一种按字母顺序对选项值进行排序的算法。
$(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。
谢谢!
答案 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"));
});