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