Daniel Körtvélyessy: probleme mit getElementById()

Beitrag lesen

Hallo liebe Leute,

ich habe da so ein kleines Problem mit einem Skript.

Das unten stehende Skript in in einer link seite eingebaut, welche aus mehreren ebenen (<div> tags + CSS) besteht. In jedem dieser Ebenen ist eine Link-Kategorie gelistet. Die die gesamte Liste recht lang ist, wollte ich die einzelnen Ebenen "zusammenklappbar" machen.

Dazu habe ich neben der Ebebeb überschrift einen <input> Button und ein verstecktes feld gesetzt. Nun werden beim Laden der Seite die Ebenen durch onLoad="hideall();" "zusammengeklappt" und in das jeweilige versteckte feld der Wert "hidden" gesetzt.

Beim Klick auf den Button wird die Funktion expand() aufgerufen und die ID's der Ebene, des Buttons und des versteckten Feldes übergeben.

jetzt mein Problem: Unter Firefox (1.0.7) läuft das Script ohne Probleme. Beim IE6 SP1 kommt eine Fehlermeldung "Objekt erwartet". Da IE an version 4 glaube ich das DOM versteht, sollte eigendlich die getElementById() Funktion klappen, oder habe ich irgendwo was falsch gemacht? und wieso klappt es dann bei Firefox??

Danke für Tips und Hinweise,
Daniel

<script language="JavaScript" type="text/javascript">

function expand(layerID, HlayerID, ButtonID) {

if (document.getElementById(HlayerID).value != 'hidden')
{
    document.getElementById(layerID).style.display = 'none';
    document.getElementById(HlayerID).value = 'hidden';
    document.getElementById(ButtonID).value = '+';
} else {
    document.getElementById(layerID).style.display = 'block';
    document.getElementById(HlayerID).value = 'visible';
    document.getElementById(ButtonID).value = '-';
}

}

function hideall() {
/* Ebenen, in denen die Links stehen */
    var layers = new Array('SolarObs','AstroInsti','SolarNeutri','Magdata','Gallery','Movies');

/* versteckte Felder */
    var hiddenfields = new Array('HideSolObs','HideSolNeu',HideAstroInst','HideMagDat', 'HideGallery','HideMovie');

/* Die Buttons */
   var buttons = new   Array('ExSolOb','ExSolNu','AstroInst','MagDatB','GalleryB','MovieB');

for (var i = 0; i<7; i++) {
       document.getElementById(layers[i]).style.display = 'none';
       document.getElementById(hiddenfields[i]).value = 'hidden';
       document.getElementById(buttons[i]).value = '+';
  }
}
</script>