我已经设置了我的问题的一个例子的jsfiddle:Example排序顺序不一致对象
鉴于这个网站:
<select id="drop1" data-jsdrop-data="countries"></select>
<select id="drop2" data-jsdrop-data="countries2"></select>
而且下面的JavaScript:
var countries = {"1" : "Albania", "5" : "Australia","2": "United Arab Emerates"};
var countries2 = {"AL" : "Albania", "AU" : "Australia", "AE" : "United Arab Emerates"};
function loadJSOptions(selector, list) {
$.each(list, function (key, value) {
$(selector).append($("<option></option>").val(key).html(value));
}
});
$(document).ready(function() {
$('select[data-jsdrop-data]').each(function() {
var selector = $(this);
var listname = selector.attr("data-jsdrop-data");
var listvalue = null;
eval("listvalue = " + listname + ";");
loadJSOptions(selector, listvalue);
});
});
任何人都可以向我解释为什么带有Alpha键的列表根据输入的顺序列出,而列表中的数字键得到排序基于关键?如果你看看jsFiddle结果,你会看到drop1显示阿尔巴尼亚,阿拉伯联合酋长国Emerates,澳大利亚,而drop2显示阿尔巴尼亚,澳大利亚,阿拉伯联合酋长国Emerates。
感谢您的帮助。
对象键没有秩序,他们只是。 – Bergi
你不能依赖对象键以任何特定的顺序。如果顺序很重要,请使用数组。 –
请不要使用'eval',而是使用'eval',而不是数组或其他东西 - 对象 – Bergi