Andreas Pflug: Hilfe zum Verständnis

Beitrag lesen

Hallo Patrick!

Ich greife mal eines Deiner Beispiele auf:

Wieder nächster Schritt:

for (var i=1;i<=4;i++) {
    dc.getElementById('elem_'+i).style.visibility="visible";
    dc.getElementById('elem_'+i).onclick = function() { alert('elem_'+i); };
  }

  
Meine Vermutung ist, dass hier nicht klar definiert ist,  
ob der Index i gemeint ist, während ich mich in  
der Schleife befinde oder der Index i, nachdem ich mich hinter der Schleife befinde (bzw. nicht \_ich\_ sondern der Javascript-Interpreter). Ich könnte mir auch vorstellen,  
dass dieses Ergebnis je nach Browser / Javascript-Implementation  
unterschiedlich ausfällt.  
  
Wie funktioniert es, wenn Du Dir die Befehle erst  
als String zusammenbastelst und darauf dann die  
eval()-Funktion loslässt:  
  
~~~javascript
  
  for(var i=1; i<=4; ++i) {  
    var s = "dc.getElementById('elem_" + i + "').style.visibility = 'visible'";  
    eval(s);  
    s = "dc.getElementById('elem_" + i + "').onclick = function() { alert('elem_" + i + "'); };";  
    eval(s);  
  }  

(Disclaimer: Das ganze ist ungetestet und kann Syntaxfehler enthalten...)

Viele Grüße

Andreas