Nur Javascript - sortiere eine Menge DIVs [duplizieren]

8

Ich habe eine Liste von DIVs, wie folgt:

%Vor%

und ich möchte sie sortieren, nur mit Javascript (keine Jquery), um ein Ergebnis wie folgt zu erhalten:

%Vor%

Bei Bedarf kann ich das Ende der DIV-IDs verwenden: "kategorie5.1- 4 " (serverseitig kann ich die DIV-IDs definieren, um die gewünschte Reihenfolge einzubetten)

Vielen Dank für Ihre Hilfe!

Hier ist der vollständige Code:

%Vor%     
jrm 21.02.2011, 14:06
quelle

3 Antworten

12

Zuerst musst du alle Divs bekommen:

%Vor%

toSort ist ein NodeList . Sie müssen es in ein Array umwandeln:

%Vor%

und dann können Sie einen Rückruf an die sort -Methode übergeben:

%Vor%

Bearbeiten: Wie bereits von @ Lekensteyn bemerkt, funktioniert das Vergleichen von IDs nur, wenn Sie nur einzelne Ziffern haben. Es wurde korrigiert, um beliebige Zahlen zu unterstützen.

Sie müssen dieses Array durchlaufen und die Elemente erneut anfügen:

%Vor%

Bearbeiten: Tippfehler behoben

DEMO

Update: Wenn Sie so viele Elemente haben, könnte das Caching der IDs folgendermaßen erfolgen:

%Vor%     
Felix Kling 21.02.2011, 14:14
quelle
1

Sie sollten die Elemente in ein Array einfügen, eine Sortierfunktion über die Elemente ausführen und die sortierten Elemente erneut an den Container anhängen.

%Vor%

Sie können diesen Code unter Ссылка

testen     
Lekensteyn 21.02.2011 14:17
quelle
0

Javascript-Arrays haben eine Sortierfunktion.

Ссылка

Sie können den Knoten childnodes list auf innerHTML (in Ihrem Beispiel) oder einer anderen Art sortieren Schlüssel.

Hier wird gezeigt, wie der Listenknoten abgerufen wird Ссылка

so etwas wie

%Vor%     
madmik3 21.02.2011 14:14
quelle

Tags und Links