# Liste nimm nur letztes element



## javascript (3. Okt 2007)

Hallo allerseits.

Kleine frage zu JavaScript die mich sehr verwirrt

Folgendes:

```
function test(hallo){
alert(hallo);
}

function ...

for (var key in test){

var aName = document.createElement("a");
aName.onclick = function() { test(key) };
aName.innerHTML = "BLA";

document.appendChild(aName);
}
```

Wenn ich nun das ganze laufen lasse und den onlick machen will,
erscheint immer der selbe Alert. test ist eine Liste von verschiedenen Elementen.
Eigentlich dachte ich, dass der key spezifische Alert kommt, aber bei 10
Elementen erschein immer nur das letzte Element in der Liste.

Vielleicht könnt ihr mir ja weiterhelfen

Danke im voraus


----------



## SlaterB (4. Okt 2007)

ganz dumm ohne Ahnung von JavaScript gefragt:
definierst du da nicht 10x das gleiche Element a im Dokument?
so dass am Ende nur ein Element a da ist, die anderen überschrieben?

was für 10 unterschiedliche Elemente sollen das denn sein, wenn du sie alle auf die gleiche Weise erstellst?
womit sind sie verknüpft, wann & wie werden sie ausgeführt?


----------



## javascript (4. Okt 2007)

Nein. Es sind 10 (zB) Elemente.Danke für die Antwort. Mitlerweilen hab ichs rausgefunden. Das Problem ist das einen annonyme Funktion immer an die gleiche Variable gebunden wird (bei mir key).

ich konnte es damit lösen:

var testtest = function(p) { return function(){ test(key) }} ;

und mit 

testtest(key) aufrufen


----------

