我想按新月订单对下拉列表进行排序。
以下代码(请参阅下面的代码段)执行我想要的操作。但是,它并没有忽略重音,这就是我的目标。
有人可以帮我吗?
window.addEventListener("load", function () {
$("#MyID").html($("#MyID option").sort(function (a, b) {
return a.text == b.text ? 0 : a.text < b.text ? -1 : 1
}))
}, false);
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<select id="MyID">
<option> Papél </option>
<option> Árvore </option>
<option> Carne </option>
<option> Banana </option>
<option> Água</option>
<option> Macaco</option>
<option> Maçã</option>
</select>
&#13;
答案 0 :(得分:2)
您可以使用 localeCompare()
来实现此目的。
window.addEventListener("load", function () {
$("#MyID").html($("#MyID option").sort(function (a, b) {
return (a.text).localeCompare(b.text);
//return a.text == b.text ? 0 : a.text < b.text ? -1 : 1
}));
}, false);
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<select id="MyID">
<option> Papél </option>
<option> Árvore </option>
<option> Carne </option>
<option> Banana </option>
<option> Água</option>
<option> Macaco</option>
<option> Maçã</option>
</select>
&#13;
有关其他方法,请参阅此链接: http://www.jstips.co/en/sorting-strings-with-accented-characters/
答案 1 :(得分:1)
window.addEventListener("load", function () {
$("#MyID").html($("#MyID option").sort(function (a, b) {
return a.text.localeCompare(b.text)
}))
}, false);
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<select id="MyID">
<option> Papél </option>
<option> Árvore </option>
<option> Carne </option>
<option> Banana </option>
<option> Água</option>
<option> Macaco</option>
<option> Maçã</option>
</select>
&#13;