Chrome und IE möglichen JSON-Objekt automatisch, wie man diese Option deaktivieren?
Ich bin mit dem folgenden JSON zu erstellen paar Checkboxen mit JavaScript.
{"5":"5.5\" x 8.5\"",
"11":"7\" x 10\"",
"4":"8.5\" x 11\"",
"8":"8.5\" x 14\"",
"12":"10\" x 7\"",
"2":"11\" x 8.5\"",
"10":"11\" x 17\"",
"6":"14\" x 8.5\"",
"9":"17\" x 11\""})
JavaScript zu erstellen, diese Checkboxen:
for(id in dimensions) {
$("#the_dimensions").append('<label class="checkbox">' +
'<input type="checkbox" class="dimensions-filter" value="' + id + '">' +
dimensions[id] + '</label>');
}
Auf Firefox, wird die checkbox erstellt gemäß der Reihenfolge in der JSON-Objekt. Also, "5":"5.5\" x 8.5\"" wird das erste element, "11":"7\" x 10\"" wird das zweite element, usw.
Aber in Chrome und IE, das JSON-Objekt wird automatisch sortiert, in aufsteigender Reihenfolge der Schlüssel. Also, "2":"11\" x 8.5\"" wird das erste element, "4":"8.5\" x 11\"" wird das zweite element, usw.
Wie kann ich deaktivieren Sie die automatische Sortierung auf Chrome und IE?
- Javascript-Objekte sind nicht bestellt. Daher können Sie nicht sortiert werden.
- Wenn Sie sicherstellen möchten, Bestellung, verwenden Sie ein array von Objekten, z.B.
[{"5":"5.5\" x 8.5\""}, {"11":"7\" x 10\""},...]
- mögliche Duplikate von Bestellt JSONObject
- Danke Euch allen für die Kommentare. Während ich versuchte, verwenden Sie Ihre Vorschläge, ich fand eine Alternative Möglichkeit, um mein problem zu lösen. Ich ersetzt-id mit Namen und Umgekehrt. Als ich nach Namen Sortieren, es ist mein problem gelöst.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Gleiche Problem hier. Meine JSON-Objekt sieht wie folgt aus:
Das Objekt ist nach Namen sortiert auf dem server (A-Z Glossar) und ich will machen eine Liste mit:
Chrome meldet:
und meine for-in-Schleife Ergebnisse in der falschen Sortierung. Es wird automatisch sortiert durch den browser, aber ich brauche die IDs.
Meine Lösung:
Ich beschloss, mich zu ändern, die Tasten mit einem Präfix Unterstrich. Mein Objekt jetzt aussieht:
Und Chrome meldet jetzt:
Und meine Liste ist auch wieder korrekt gerendert.