我已經設置了我的問題的一個例子的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