SELFHTML wird 30 Jahre alt!
Die Mitgliederversammlung findet am 24.05.2025 um 10:00 statt. Alle Mitglieder und Interessierte sind herzlich eingeladen.
Davor und danach gibt es Gelegenheiten zum gemütlichen Beisammensein. → Veranstaltungs-Ankündigung.
JavaScript/Tutorials/Datensatzauswahl aus Tabelle
Oft kommt es vor, dass man Datensätze aus einer Datenbank (oder aus einer sonstigen Datenquelle) als tabellarische Liste anzeigen will, um dem Besucher die Möglichkeit zu geben, einen oder mehrere Datensätze auswählen.
Andreas Wächter hatte vor vielen Jahren einen SelfHTML-Aktuell Artikel geschrieben, indem er eine Variante des Checkbox-Hacks mit JavaScript kombiniert hatte. Hier soll eine rein JavaScript-basierte Version vorgestellt werden.
Inhaltsverzeichnis
Vorgehensweise
Auswahl einzelner Zeilen
var rows = document.getElementById('auswaehlbar').getElementsByTagName('tbody')[0].getElementsByTagName('tr');
for (i = 0; i < rows.length; i++) {
rows[i].addEventListener('click', function() {
alert(this.rowIndex + 1);
});
}
Hinzufügen und Entfernen einer Klasse
/* Zebra-Streifen für ungerade Zeilen */
tr:nth-child(odd) {
background-color: #eee;
}
/* 2. und 3. Spalte rechtsbündig */
td:nth-of-type(2),td:nth-of-type(3) {
text-align: right;
}
/* Markierung, dass Zeile ausgewählt ist */
tr.markiert {
background-color: lime;
}
var rows = document.getElementById('auswaehlbar').getElementsByTagName('tbody')[0].getElementsByTagName('tr');
for (i = 0; i < rows.length; i++) {
rows[i].addEventListener('click', function() {
this.classList.toggle('markiert');
});
}
classList.toggle
die Klasse .markiert
hinzugefügt. Durch die toggle
-Methode wird die Klasse bei einem weiteren Klick wieder entfernt.Anwendungsbeispiel
Weblinks
- ↑ Quirksmode: HTML element properties - Tables
rows
zugewiesen. Jede Zeile wird mitaddEventListener
anklickbar gemacht. Ein Klick ruft eine Funktion auf, die mitrowIndex
[1] die Zeilennummer ausgibt. Da die Zählung mit 0 beginnt, wird der Wert vor der Ausgabe um 1 erhöht.