getElementBy

Hallo da draussen,

Ich habe ein Search-CGI Script welches Daten aus einer flat-DB an ein HTML-Template übergibt. Die gefundenen Daten werden einer kleinen Tabelle pro Datensatz ausgegeben.

Nun möchte ich, dass die Tabelle erst sichtbar ist, wenn man einen enstspr. Button drückt (zb den titel der Tabelle). Bei 100 und mehr gefundenen Datensätzen ist es einfach übersichtlicher, erst nur zb. den Titel des Datensatzes anzuzeigen und per mausklick die entspr. Tabelle aufzuklappen.

Mit einer CSS Class habe ich die Tabelle unsichtbar gemacht (visibility: hidden) und es wird nur der Name der Tabelle als Liste dargestellt… soweit, so gut.

Wenn ich jetzt die Tabelle plus den Titel in einem Container zusammenfasse (div oder span) und diesem container-objekt per onmousover bzw. onmouseout sage, er solle mit getElementByTagName(‚table‘)[0].className=‚blah blah‘ die class der Tabelle ändern und sie sichtbar/unsichtbar machen, dann klappt das wunderbar.

Jetzt möchte ich das aber nicht mit mouseover, sondern mit zwei Buttons lösen (ein- und ausblenden) Aber das klappt einfach nicht.
wenn ich dem button (auch innerhalb des div bzw. span containers) ein onclick=„getElementsByTag…“ etc gebe, dann findet er den Tag nicht.
Wenn ich via „document.getElementsByTag…“ gehe, dann findet er bloss jeweils den ersten im Dokument… es öffnet sich also immer die selbe Tabelle, egal welche ich anklicke. Ich kann den Tabellen auch keine individuelle Id verpassen, da die Tabelle ja vom CGI script ausgefüllt wird und es je nach gefundenen Datensätzen mehr oder weniger Tabellen hat.

Wie ist der Syntax wenn ich mit „getElement“ nicht im ganzen dokument, sondern nur im übergeordneten container-tag suchen möchte?
Oder mache ich das eh total falsch?

ich hoffe das ist jetzt nicht zu kompliziert… :smiley:

vielen Dank für jeden Tipp.

grüsse,
Oliver

Z.B. so:

Titel der Tabelle
test
function show(n) {
elt=document.getElementById(n)
elt2=elt.nextSibling;
//for Mozilla
if(elt2.tagName!=„TBODY“) elt2=elt2.nextSibling
//
elt2.style.display=""
}

Wenn du nur mit IE rechnest, kannst du die tagName-Prüfung löschen.

Klasse!!

Funktioniert tadellos.

Vielen Dank für den guten Tipp!

Grüsse,
Oliver