13 Stimmen

Wie kann ich eine NodeList in JavaScript neu ordnen/sortieren?

Ich habe eine, wie ich finde, einfache Frage; lassen Sie mich das kurz erklären:

In meinem JavaScript, food.xml wird mit eingelesen:

getMenuXml.open("GET","food.xml",false);
getMenuXml.send();
xmlDoc=getMenuXml.responseXML;
xmlFoodList = xmlDoc.getElementsByTagName("food");

so dass ich jetzt eine NodeList habe xmlFoodList mit allen Lebensmittelelementen. So weit so gut. Das Problem ist, dass ich die Knoten nach einem Element sortieren möchte <category> innen. Ich kann das mit lesen:

xmlFoodList[i].getElementsByTagName("category")[0].childNodes[0].nodeValue

Später in meinem Code werden die Lebensmittel in einer Liste angezeigt, und wie zu erwarten, möchte ich, dass Lebensmittel der gleichen Kategorie zusammen aufgelistet werden. Also, meine Frage ist: Wie kann ich die Reihenfolge der Knoten in xmlFoodList auf der Grundlage ihrer Kategorie?

Anmerkungen: Ich kann mich nicht ändern food.xml und ich möchte meinen späteren Code nicht bearbeiten, um die Sortierung vorzunehmen, während die Liste aufgefüllt wird. Ich möchte nicht die NodeList in ein Array zu konvertieren, da ich eine Menge von späteren Code neu schreiben müsste. Leistung ist eigentlich nicht viel ein Anliegen, so fühlen sich frei zu klonen/verschachtelte Schleife alle Sie wollen. Vielen Dank für Ihre Zeit.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X