» Daher, wo hast Du die alert-Meldung eingebaut?
So:
var a = document.links;
window.onload = function() {
for (var i = 0; i < a.length; i++) {
if (a[i].className == 'fotolink') {
a[i].onclick = function() {
document.aktuelles_foto.src= this.href;
alert("aktueller Link: " + this.href + "; dazugehöriger Index: " + i);
return false;
}
}
}
}
>
> Bau ich den Code woanders ein nehm ich die Schleife mit und die Alerts laufen von 0 - 55 (sind 56 Links) bei Seitenaufruf durch. Komm gedanklich auch nicht mit, an welcher Stelle jetzt das gerade aktive "i" erreicht werden kann.
Das Problem ist, dass wenn du die Funktion aufrufst (onclick) die Schleife ja schon lange, lange fertig ist, also i = a.length ist. Um dieses Problem zu umgehen gibt es mehrere Möglichkeiten, die verständlichste für Anfänger dürfte sein, wenn du dem Objekt den Index übergibst.
~~~javascript
if (a[i].className == 'fotolink') {
a[i]._index_ = i;
a[i].onclick = function() {
alert(this._index_);
...
In dem fall musst du aber aufpassen, dass die Bezeichnung nicht mit einem benötigten oder vorhandenen Attribut kollidiert.
Ich bin aber sicher, du brauchst den Index gar nicht. Aber ich habe jetzt nicht alles gelesen um zu sehen was du genau vor hast.
Struppi.