Hallo JS,
zum Zeitpunkt des Klicks hat i den Wert des letzten Schleifendurchlaufs. Du muss das i zwischenspeichern, z.B. als neue Eigenschaft des Elements link:
...
link.nr = i;
link.onclick = function() {
alert(this.nr);
}
...
Gruß, Jürgen