JavaScript/Tutorials/Datensatzauswahl aus Tabelle
Aus SELFHTML-Wiki
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
Beispiel
ansehen …
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
Beispiel
ansehen …
/* 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');
});
}
Anstelle der alert-Warnung wird nun mit
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
rowszugewiesen. Jede Zeile wird mitaddEventListeneranklickbar 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.