Assoziative Arrays in einer
Sven Laukat
- javascript
Hallo zusammen.
Nachdem ich endlich rausgefunden habe, wie man fortlaufende Indexnummern in Objekteigenschaften mittels Assoziativer Arrays durch eine "for-Schleife" realisieren kann, habe ich bei einer weiteren Benutzung dieser Technik festgestellt, daß weder der IE5, noch der NN4.7 (habe zur Zeit keine anderen Browser installiert) diese Art der Programmierung auf der linken Seite eines Ausdrucks auswertet. Es gibt zwar keine Fehlermeldung, aber der gewünschte Effekt tritt auch nicht ein. Kennt jemand eine Lösung?
So funktioniert es (Jedenfalls im NN, im IE habe ich den Schleifenkörper mittels "eval()" programmiert):
for (i=1; i<=y; i++)
{
element_[i] = document["obj" + i];
}
So funktioniert es nicht (weder in NN, noch im IE):
for (i=1; i<=y; i++)
{
document["obj" + i + ".top"] = 500;
}
Es funktioniert auch nicht, wenn ich die Schreibweise des Ausdruckes aus dem Schleifenkörper nehme und es mit einer festen Zahl versuche. Ganz normal ausgeschrieben funktioniert es hingegen wunderbar. Aber wer will schon 400 Codezeilen Tippen, wenn man es in 8 Zeilen haben kann ;-)
thanx, Sven
Huhu die zweite :-)
Ich habe mein Problem doch noch lösen können *freu* Man darf weitere Eigenschaften NICHT mit in die eckige Klammer schreiben, sondern einfach ganz normal dahinter.
So gehts:
for (i=1; i<=y; i++)
{
document["obj" + i].top = 500;
}
Falls das jemand verwenden möchte, so achte man darauf hinter der schließenden eckigen Klammer ganz normal MIT einem Punkt weiter zu schreiben.
Ich habe die Lösung übrigens nicht mehr selber rausbekommen, sondern Glücklicherweise in einem Beispiel im Archiv entdeckt. Jaja, ich weiß... erst schauen, dann schreiben :-) Aber ihr kennt das doch auch, wenn man schon seid drei Stunden verzweifelt rumprobiert, fragt man eben, bevor man sich doch noch aufrafft woanders zu suchen *smiles*
Sven