3
我已經使用jquery在用戶更改頁面的語言代碼(通過語言選擇列表)後對國家/地區列表進行排序。這是一個相關的post。jquery - 翻譯國家名稱並對它們進行排序
國名翻譯看起來運行正常,但翻譯的國名的排序(A-Z)並不起作用。
我注意到,當一個國家名稱對國名的第一個字母具有diaeresis/diacratic標記時,所述國家名稱被降級到列表的底部。
當英文國名被翻譯成德文時。最後出現帶有diaeresis/diacratic標記的國名。例如,國名Österreich(奧地利 - 英文)應該按字母O開頭的國家名稱排序。
是否有一定的竅門可以排序,包括帶有分音/ diacratic標記的字母?
這裏是我的兩難困境的直觀例子:
這裏是我的jQuery代碼:
function sortAddressTypes() {
// sort the address country style types list (country name) in alphabetical order after language code has changed.
var selected = $("#id_address_country_style_type").val(); // preserve the users selected value.
var options = $('#id_address_country_style_type option');
var arr = options.map(function(_, o) {
return {t: $(o).text(), v: o.value};
}).get();
arr.sort(function(o1, o2) {
return o1.t.toLowerCase() > o2.t.toLowerCase() ? 1 : o1.t.toLowerCase() < o2.t.toLowerCase() ? -1 : 0;
});
options.each(function(i, o) {
console.log(i);
o.value = arr[i].v;
$(o).text(arr[i].t);
});
$("#id_address_country_style_type").val(selected); // assign the preserved users selected value.
}
Rory McCrossan,感謝代碼和localCompare()引用。它像一個魅力。 – user1261774
沒問題,很樂意幫忙。 –