Melzmann: Stylesheetinformation per JS ändern -> Probleme mit IE

Hallo Community,
Habe ein kleines Script geschrieben um eine Stylesheetinformation per Java Script zu ändern...
Hier erstmal der code:

  
<html xmlns="http://www.w3.org/1999/xhtml">  
  
<head>  
<link rel="stylesheet" type="text/css" href="expand_box.css" />  

  
<script type="text/javascript">  
  
function setexpand () {  
     document.getElementsByName("expand");  
    if(document.getElementsByName("expand")[0].style.display == "none")  
 {  
    document.getElementsByName("expand")[0].style.display = "block";  
 }  
 else  
 { document.getElementsByName("expand")[0].style.display = "none";  
 }  
  
  
  
}  
</script>  

  
  <title>Hello!</title>  
  
</head>  
  
<body>  
 <div class="box" name="box"><a href="javascript:setexpand()">test</a></div>  
 <div class="expand_box" style="display: none " name="expand">&nbsp;</div><br />  
 test  
  
</body>  
  
</html>  

Nun das Script funktioniert unter Firefox wunderbar. Nur leider macht der IE mal wieder zicken.
Ich erhalte folgende Fehlermeldung:
document.getElementsByName().0.style ist NULL oder kein Objekt.
Nun wie kann ich dieses Problem beheben, so das es auch der liebe gute IE versteht? Es liegt ja offenbar daran das er den Zustand nicht auslesen kann.

mfg
Melzmann

  1. Tach Melzmann,

    Nun das Script funktioniert unter Firefox wunderbar. Nur leider macht der IE mal wieder zicken.
    Ich erhalte folgende Fehlermeldung:
    document.getElementsByName().0.style ist NULL oder kein Objekt.

    Nein, das Verhalten ist nur konsequent, denn das anzusprechende div-Element besitzt kein name-Attribut und somit greift auch die Methode getElementsByName() nicht.

    Nun wie kann ich dieses Problem beheben, so das es auch der liebe gute IE versteht? Es liegt ja offenbar daran das er den Zustand nicht auslesen kann.

    Verwende getElementById() oder -- sofern die Reihenfolge im Dokument (Index) feststeht -- getElementsByTagName().

    Man liest sich,
    svg4you

    1. Hallo,
      ist es dann zulässig
      [code lang=html]<div class="expand" id="expand" style="display: none ">&nbsp;</div>[/html]
      zu schreiben? Jedenfalls will mich der Validator dafür nicht verhaun. :-)

      1. Tach Melzmann,

        ist es dann zulässig
        <div class="expand" id="expand" style="display: none ">&nbsp;</div>
        zu schreiben? Jedenfalls will mich der Validator dafür nicht verhaun. :-)

        Zulässig schon (sofern die ID nicht doppelt verwendet wird), wobei Klassenname = ID nicht unbedingt sinnvoll ist.

        Man liest sich,
        svg4you