Variablenname dynamisch zusammensetzten
Pese
- javascript
Hi
Ich habe folgende Variable fuer die Fehlererkennung:
err_company = 0;
err_bandlow = 0;
err_bandup = 0;
err_gateway = 0;
err_mail = 0;
Ich habe nun eine Funktion die mir als input den Inhalt von einem Eingabefeld nimmt, sowie als 2tes Argument den Elementnamen (company,
bandlow,bandup,gateway,mail). Abhaengig vom input und Elementnamen moechte ich die oben genannen Variable verwenden. Um viele ifs oder cases zu sparen hab ich mir gedacht ich setzt mir den Variablenamen dynamisch zusammen. Hab folgende 2 Varianten ausprobiert, geht aber leider nicht.
eval("err_" + elem) = 1;
"err_" + elem = 1;
Weiss jemand die korrekte Syntax dafuer?
Danke und Gruss!
hi,
eval("err_" + elem) = 1;
eval is evil :-)
Weiss jemand die korrekte Syntax dafuer?
https://forum.selfhtml.org/?t=115483&m=737784 sollte weiterhelfen können.
gruß,
wahsaga
Hi
eval("err_" + elem) = 1;
Danke fuer Deine Antwort, aber sicher bin ich mir nun nicht. Bei Deinem Link schaut das ganze so aus.
var tmp = "variable" + i.toString(10);
window"test1";
Muss ich dann in meinem Fall schreiben?
tmp = "err_" + elem;
tmp = 1;
Wir hier dann in tmp wirklich eine Referenz zu meiner urspruenglichen Variable gespeichert?
Gruss
Pese
Hallo,
Danke fuer Deine Antwort, aber sicher bin ich mir nun nicht. Bei Deinem Link schaut das ganze so aus.
var tmp = "variable" + i.toString(10);
window"test1";
Der entscheidende Punkt daran ist window["Variablenname"]
. Der Name der Variable wird als String zwischen den eckigen Klammern notiert, kann also wie jeder String zusammengesetzt werden (und es kann sich, wie im obigen Beispiel, auch wiederum um eine String-Variable handeln, die den Variablennamen enthält). Variablenname
und window["Variablenname"]
sind gleichwertig.
Muss ich dann in meinem Fall schreiben?
tmp = "err_" + elem;
tmp = 1;
Nein, mit window["err_" + elem]
greifst du auf die globale Variable zu, die den Namen hat, der sich aus "err_" + elem
ergibt.
Mathias