Ich habe mehrere Eingabefelder in einem Formular mit jeweils einem eindeutigen Namen. Zum Beispiel, um die Farbe zu ändern, würde ich tun:Ist es möglich, Variablen als dom-Elemente zu verwenden?
testForm.username.style.background = "yellow";
username
sind der Name des Eingangs und testform
ist der Formularname
Ich möchte, dies zu tun: ersetzen username
mit einer variablen elem
so, dass, wenn Ich rufe die Funktion auf, um die Hintergrundfarbe zu ändern, ich muss nicht für jedes eindeutige Feld eine separate Funktion haben. Ich würde nur den elem
Namen senden und diese Funktion würde für jedes Feld funktionieren.
testForm.elem.style.background = "yellow";
Mein Problem ist, dass es nicht funktioniert. Zum Beispiel hat es die elem
in die Funktion in Ordnung, aber es sagt, dass testForm.elem.style
null
ist. Aus irgendeinem Grund mag Javascript Variablen für Elementnamen nicht, die ich rate?
Keine gute Idee. Der Zugriff auf eine 'elements'-Sammlung wäre zuverlässiger und standardkonform, zB:' testForm.elements [elem] .style.backgroundColor = 'yellow'' – kangax
RaYell danke für die Hilfe, es funktionierte so, wie ich es wollte zu. Ich hatte den Eindruck, dass testForm [elem] .style das gleiche wie testForm.elem.style war ... rate nicht! Was ist der Vorteil der Verwendung der Elementsammlung? Wie hilft es mir anders als standardkonform zu sein? – payling
Ich würde auch auf das Vorhandensein eines Elements (und seiner 'style' Eigenschaft) testen, bevor ich versuche, es zu modifizieren -' var el = testForm.Elemente [Elem]; if (el && el.style) el.style.backgroundColor = 'yellow'; ' – kangax