Christian Kruse: variablenbezeichnung erst zur laufzeit erzeugen

Beitrag lesen

Hoi,

  1. die "unsaubere"

Die man eigentlich gar nicht unsauber verwenden muss. Jedes Element ist doppelt verzeichnet:
einmal mit Namen, einmal mit Nummer. Ergo....

Du benutzt die eval() Funktion

tust du genau das nicht :-) Sondern du benutzt den Assoziativen Array:

function beispielfunktion(elementnummer)
{
...
     eval("bla = document.formularname.feld_"+elementnummer+".value");
...
}

function beispielfunktion(elementnummer)
 {
  ...
  var bla = document.formularname["feld_"+elementnummer].value;
  ...
 }

Generell laesst sich

window.document.open()

auch als

window['document'].open()

darstellen. Deshalb finde ich die Nutzung von eval() in solchen Faellen auch total hirnrissig.
Jeder Array in JavaScript laesst sich halt auf die zwei Arten darstellen. Statt

document.formularname.feldname.value

waere auch moeglich

document['formularname']['feldname']['value']

oder, um es auf die spitze zu treiben:

window['document']['forms']['formularname']['elements']['feldname']['value']

Gruesse,
 C'eval ist evil!'K