Alle ID's die mit "lrid_" beginnen
Stefan S.
- javascript
Hi Leute,
Ich habe folgendes Problem.
Auf einer Seite gibt es mehrere Tabellen mit
id="lrid_1"
id="lrid_2"
id="lrid_3"
...
Wie kann ich alle Tabellen die mit "lrid_" beginnen verstecken?
Zurzeit mach ich es so das eine Variable an eine Funktion übergeben wird:
function hide_them_all(a) {
for (b='1';b<=a;b++) {
document.getElementById("lrid_" + b).style.display = 'none';
}
}
Ich möchte aber keinen Parameter übergeben.
Gibts ne Funktion die alle ID's in ein Array packt? Dann könnte ich da die passenden raussuchen.
Stefan
Moin!
Zurzeit mach ich es so das eine Variable an eine Funktion übergeben wird:
function hide_them_all(a) {
for (b='1';b<=a;b++) {
document.getElementById("lrid_" + b).style.display = 'none';
}
}Ich möchte aber keinen Parameter übergeben.
Gibts ne Funktion die alle ID's in ein Array packt? Dann könnte ich da die passenden raussuchen.
Dein Problem ist also, herauszufinden, wieviele Elemente mit einem bestimmten ID-Namensteils sich im aktuellen Dokument befinden.
Dazu gibts mehrere mögliche Lösungsansätze.
Der komplizierte und wegen der (so wie ich die Realisierung sehe) vielen get*By*()-Funktionen eher langsame (von der Performanc her, weil die je nach Browser nicht wirklich schnell sind) wäre, dass du mit getElementsByTagName() alle Tabellen herausfindest, dann für jedes Element dieses Arrays das Attribut "id" abfragst und dann jedes Attribut untersuchst, ob es "lrid_" enthält. Wenn ja, kannst du das CSS ändern.
Der Weg, den ich gehen würde: Stelle fest, wieviele Tabellen es tatsächlich gibt, und codiere diesen Wert an zentraler Stelle fest ein. Das ist im allgemeinen wesentlich schneller. Du kannst, sollten nicht immer alle Tabellen vorhanden sein (sei es, dass Lücken entstehen können, oder dass teilweise weniger Tabellen enthalten sind, als der Maximalwert), vor dem Zuweisen des Styles abfragen, ob das Objekt, was getElementById() zurückgibt, existiert.
- Sven Rautenberg