JürgenB: js auf Internet Explorer

Beitrag lesen

Hallo artnat,

for (j=0 ; j<document.getElementsByTagName("h1").length; j++)
      {
       for (i=1 ; i<llis; i++ )
         {
             if (liste[i]==document.getElementsByTagName("h1")[j].firstChild.data)
             {
                 document.writeln("<div id="v-briefeintrag"><a href="../briefe/" + liste[i] + ".htm">" + document.getElementsByTagName("h2")[j].firstChild.data + "</a></div>")
                 document.writeln("<div id="v-inhalt">" + document.getElementsByTagName("h3")[j].firstChild.data + "</div>")
             }
          }
      }

  
Zugriffe auf Arrays, Objekte oder gar Domelemente sollte man in Schleifen wenn möglich vermeiden. Daher solltest du die Zugriffe auf "h1", "h2" und "h3" außerhalb der i-Schleife durchführen und zwischenspeichern:  
  
~~~javascript
e_h1 = document.getElementsByTagName("h1");  
e_h2 = document.getElementsByTagName("h2");  
e_h3 = document.getElementsByTagName("h3");

in der j-Schleife:

e_h1j = e_h1[j];  
e_h2j = e_h2[j];  
e_h3j = e_h3[j];

und dann in der i-Schleife
e_h1.length, e_h1j.firstChild.data, e_h2j.firstChild.data oder e_h3j.firstChild.data

Der Zugriff auf liste erfolgt nur zweimal in der i-Schleife, hier erwarte ich von einem Zwischenspeichern keinen großen Gewinn.

Gruß, Jürgen