JavaScript Problem

nitrit

Angesehenes Mitglied
Folgende Funktion erklärt sich wahrscheinlich selber. Ich möchte damit die Style-Attribute INKLUSIVE Angabe des Attributs ändern/angeben.

Ich weiss zwar, dass es geht, ich hab aber vergessen wie.
Wie lasse ich den Inhalt einer Variable als Objekt-Eigenschaft aussehen/anschliessen?
CODE function css_style(domID, attrib, prop){
document.getElementById(domID).style.attrib = prop;
}
 
Die Variablen werden beim Aufruf mit Werten belegt. Also können sie an den Stellen verwendet werden, wo Werte zulässig sind, also hier:


QUOTE (nitrit @ Di 14.08.2007, 17:35)function css_style(domID, attrib, prop){
document.getElementById(domID).style.attrib = prop;
}


Sprich I: Das Token 'attrib' bleibt genauso stehen wie 'document' - Du suchst also nach einem Unterobjekt namens 'attrib' des übergeordneten style-Objektes. Das gibt es nicht, also funktioniert das nicht.

Sprich II: Da Du zur Laufzeit 'attrib' durch den übergebenen Wert ersetzen willst, mußt Du dynamisch einen JavaScript-String zusammenbauen und diesen zur Laufzeit mit eval ausführen. Da muß man dann - wie bei Sql-Code - darauf achten, daß die Werte korrekt in Hochkommata stehen bzw. daß an den passenden Stellen keine Hochkommata eingesetzt werden.

Also: Stringvariable belegen, mit alert zur Kontrolle ausgeben lassen, mit eval ausführen. Stimmt alles, dann die alert-Zeile raus.
 
Na klar, eval()!
Daran hab ich gar nicht mehr gedacht, danke
rolleyes.gif


Achja die Lösung:
CODE function css_style(domID, attrib, prop){
eval('document.getElementById("'+domID+'").style.'+attrib+' = "'+prop+'";');
}
 
Zurück
Oben