Sortieren von Listenelementen mithilfe der benutzerdefinierten Sortierreihenfolge in jQuery

8

Meine Frage ist einer Reihe anderer, die ich auf Stack Overflow gefunden habe, sehr ähnlich, aber nicht ganz gleich.

Ich möchte die Elemente nach dem Inhalt eines Bereichs sortieren, der in jedem Element enthalten ist - aber mit einer Sortierreihenfolge, die ich definieren kann. Hier ist der HTML-Code für einen Beispiellisteneintrag:

%Vor%

Ich möchte nach dem Inhalt der "Jahr" -Spanne sortieren, aber chronologisch statt alphabetisch. Die Reihenfolge muss natürlich lauten:

  • Neuling
  • Sophomore
  • Junior
  • Senior

Wie kann ich das tun?

Nur als Referenz verwende ich den folgenden jQuery-Code (der perfekt funktioniert), um alphabetisch nach Nachnamen zu sortieren:

%Vor%     
40 Degree Day 06.07.2011, 04:28
quelle

3 Antworten

9

Um die Funktion sortByLastName () zu vergleichen, würde dies funktionieren:

%Vor%

Verwenden Sie einfach $ .inArray () , um die Indizes für jedes Schuljahr innerhalb des Arrays zu finden. Beachten Sie, dass dies -1 für Werte zurückgibt, die nicht im Array gefunden werden. Dadurch werden diese Elemente an die Spitze Ihrer Liste gesetzt.

    
jaredbranum 06.07.2011, 05:03
quelle
6

Ein einfacher Weg wäre, ein Array mit Ihren erwarteten Werten zu erstellen.

%Vor%

Wenn Sie Ihre Elemente sortieren, vergleichen Sie die Indizes.

%Vor%     
czarchaic 06.07.2011 04:56
quelle
1

Sie müssen Ihren Sortierkriterium Callback ändern. So:

%Vor%

Hoffe, das hilft

    
Edgar Villegas Alvarado 06.07.2011 05:11
quelle

Tags und Links