Ich verwende SignalR
, um Daten in eine Tabelle zu pushen, wenn sie erstellt wird.
Meine Sortierung in der Tabelle scheint nicht zu funktionieren.
Dies ist mein jQuery-Code:
%Vor%
Wenn ich meinen Weg debugge, dachte die Jquery, fügt sie tr
hinzu, aber sie ruft sortTable()
auf, sortiert sie aber nicht alphabetisch.
Ich kann das Problem nicht finden, und deshalb hoffe ich, dass mir jemand helfen kann.
Um die Tabelle von Anfang an zu sortieren, müssen Sie nur einmal sortTable
aufrufen. In dem von Ihnen bereitgestellten aktualisierten Snippet funktioniert die Sortierung, sobald Sie auf die Schaltfläche "Hinzufügen" klicken, außer dass die neu hinzugefügte Zeile nicht korrekt sortiert wird.
Das Problem hier waren Leerzeichen vor den Einträgen, daher müssen Sie $.trim()
verwenden, um führende oder nachstehende Leerzeichen aus den Zeichenfolgen zu entfernen. Ich habe Ihre Texte auch in lokalen Variablen gespeichert, um den Code klarer zu machen.
Ihr Selektor $('td:first', a)
gibt die <td>
-Zelle einschließlich des Zeilenvorschubs (Textknoten) zurück.
Der .text()
-Aufruf gibt dann den Text des <a />
-Tags zurück, aber auch den Zeilenvorschub vom Textknoten davor.
Der hinzugefügte Text hat keinen Zeilenvorschub. Das erste Zeichen in dem Vergleich ist also ein Zeilenvorschub (10) gegen ein druckbares Zeichen (& gt; 65). Daher wird der hinzugefügte Text immer am Ende der Tabelle bleiben.
Ändern Sie den Selektor, um stattdessen direkt das <a />
-Tag zu erhalten, und die Sortierung sollte funktionieren.