服务器从查询中返回以下响应:
{ ROM: "Romania",
YUG: "Yugoslavia",
PRT: "Portugal",
MKD: "Macedonia",
GRC: "Greece",
FRA: "France",
ISL: "Iceland",
LUX: "Luxembourg",
HUN: "Hungary",
GBR: "United Kingdom", 36 more… }
我需要将它们放入已经存在的选择中,如下所示:
$.each(result, function(key, value) {
$('#country')
.append($("<option></option>")
.attr("value",key)
.text(value));
});
有人可以告诉我如何在将国家/地区插入 html 元素之前按值按字母顺序对它们进行排序吗?
最佳答案
您无法对对象进行排序,但可以对数组进行排序,因此您可以创建一个 HTMLOptionElement
对象数组并对其进行排序,然后将其附加到选择元素。
$('#country').append(function() {
return $.map(result, function (key, value) {
return new Option(key, value);
}).sort(function (a, b) {
return a.text.localeCompare(b.text);
});
});
关于javascript - 使用 Javascript 按字母顺序对 JSON 响应进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29908744/