Rolf B: Tabellensortierung - wo ist der Fehler....?

Beitrag lesen

problematische Seite

(Uff - da bastelt man rum und währenddessen posten zwei andere 😉)

Hallo Ingo,

Ich verzweifle gerade an einer simplen Tabellensortierung...

Ich verzweifle an deinem HTML.

(1) Solche Monster bitte nicht posten, sondern ein Onlinebeispiel bereitstellen. Das schreiben wir fast täglich 😟. Ich werde deinen Code jetzt nicht selbst online stellen. Es hätte ja schon geholfen, die Row-Flut auf 3 oder 4 zu reduzieren; ich habe das mal gemacht.

(2a) Placeholder sind keine Labels, dein Suchfeld braucht ein label Element zur Beschriftung, und type="search" obendrein.

(2b) addEventListener kennst Du doch; warum beschmutzt Du Dein HTML mit einem onkeyup im Suchfeld? Und wieso keyup? Was machst Du, wenn jemand mit der Maus einen Inhalt hineinkopiert? Deine Seite ist nicht mausbedienbar.

(3) Wenn ich es online stellen täte - dann gelänge es mir nicht, eine Sortierung herbeizuführen. Ich würde TAB und ENTER und TAB TAB drücken - alles ohne Effekt. Oder anders gesagt: click-Handler auf einem nicht-interaktiven Element wie th sind ein no-go. Die Sortierfunktion gehört auf Buttons. Im Wiki hätten wir ein Implementierungsbeispiel. Deine Seite ist nicht tastaturbedienbar.

(4) Du speicherst Dir einmalig zu Beginn die Tabellenzeilen im Array rows. Dann sortierst Du und legst das Ergebnis nach newRows, woraus Du dann die Tabelle neu aufbaust. Im rows Array bleiben damit die Rows der Ursprungstabelle in ihrer Ursprungsreihenfolge erhalten.

Für die Spalte 1 hast Du "number" als Datentyp angegeben. Da stehen aber keine Zahlen, deswegen liefert parseFloat immer NaN und dein Sort-Callback sagt immer: Alles gut, nicht tauschen. Deswegen ergibt sich nach dem sort-Aufruf die aus dem rows-Array übernommene Ursprungsreihenfolge.

Das kommt davon, wenn man Code zusammenkopiert, ohne ihn zu verstehen!

Rolf

--
sumpsi - posui - obstruxi