Hallo Mudder,
for(var i=0;i<10;i++) {
element[i].onclick = function() {
internevariable = i;
alert(internevariable);
}
}
hier ist internevariable eine globale Variable, der nacheinander die werte 1 bis 9 zugewiesen werden. Am Ende hat sie den Wert 9. Du musst dafür sorgen, dass internevariable eine lokale Variable wird. Dieses geht mit so genannten closures: du schließt die Variable in eine Funktion ein:
for(var i=0;i<element.length;i++) {
( function(){
var internevariable = i;
element[i].onclick = function() {
alert(internevariable);
}
})();
}
dabei ist
( function(){ ... })();
eine anonyme Funktion, die sofort ausgeführt wird. Die lokalen Variablen in dieser Funktion werden bei den Schleifendurchläufen nicht mehr überschrieben.
Gruß, Jürgen