Hi,
Ich hab mir eine simple kleine Funktion erstellt, welche ich per onclick aufrufe. Diese Funktion soll den aktiven Div ausblenden und einen neuen definierten einblenden.
du hast hier einen der seltenen Fälle, in denen der IE korrekter ist als die Konkurrenz.
function zeigeInhalt( ort ) {
var text = document.getElementsByName('Inhalt');
Sagtest du nicht, es handelt sich um div-Elemente? Pech, denn für div ist das name-Attribut in HTML nicht definiert. Da hält sich der IE sehr katholisch dran. Ergo findet er keine Elemente, und deine NodeList "text" bleibt leer.
Selbst wenn das funktionieren würde, wäre deine Implementierung aber sehr ineffizient: Vor der Schleife speicherst du das Ergebnis von getElementsByName(), aber in der Schleife rufst du die Funktion immer wieder auf, so dass in jedem Durchlauf wieder das gesamte DOM durchsucht wird.
document.getElementById(ort).className = 'show';
Davon abgesehen: Warum übergibst du der Funktion die ID des gesuchten Elements als String, anstatt direkt die Referenz auf das Elements, was doch bei einem onclick-Handler naheliegend wäre? Dann könntest du dir hier den Aufruf von getElementById() sparen.
Dann hat jeder Div eine eigene id, die mit dem Titel eines Links übereinstimmt. So wird dann über onclick="zeigeInhalt(this.title)"
der richtige Inhalt angezeigt.
Das würdest du dann umbauen auf onclick="zeigeInhalt(this)".
Ich bräuchte nun eine kleine Hilfestellung um das auch im IE8 zum laufen zu bringen
Verzichte in diesem Fall auf getElementsByName(). Stattdessen würde ich mit getElementById() ein übergeordnetes Containerelement selektieren, und darin mit getElementsByTagName() alle div-Elemente. Eventuell musst du sie noch anhand bestimmter Merkmale aussortieren, wenn es im Container auch noch andere divs gibt, die davon nicht betroffen sein sollen.
So long,
Martin
--
Realität ist eine Illusion, die durch Unterversorgung des Körpers mit Alkohol entstehen kann.