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
没问题,很乐意帮忙。 –