Javascript Objekte und JQuery.each
lima-city → Forum → Die eigene Homepage → HTML, CSS & Javascript
abrufen
attribut
ausgabe
auslese
code
eigenschaft
einzelnen eigenschaften
fehler
funktion
objekt
problem
richtig speichern
sache
sinn
stand
text
versuchen
zeichen
zugfahrt
zugreifen
-
Hi,
ich arbeite gerade an einem JQuery Plugin, mit dem ich das Style-Attribut per $(this).attr("style"); auslese und die einzelnen Eigenschaften in ein Objekt speichern will. Das ist nur eine von vielen Funktionen des Plugins.
Mein Problem ist, dass ich zwar das Style-Attribut aufteilen, aber nicht richtig Speichern kann:
var TextElement = $(".text"); var Canvas = {}; if(TextElement.attr("style") != undefined){ $.each(TextElement.attr("style").split(";"),function(key,value){ if(value != ""){ var validKey = ""; $.each(value.split(":")[0].toLowerCase().split("-"),function(vKey,vValue){ if(vKey > 0) validKey += vValue.substr(0, 1).toUpperCase() + vValue.substr(1); else validKey = vValue; }); if(validKey == "") validKey = value.split(":")[0]; if(value.split(":")[1] != undefined) Canvas[validKey] = value.split(":")[1]; } }); }
Zuerst trenne ich die einzelnen Eigenschaften und dann versuche ich Eigenschaft und Wert in das Objekt Canvas zu schreiben. Das funktioniert soweit ganz gut, wenn ich jetzt unterhalb des Codes folgendes schreibe:
$.each(Canvas,function(key,value){ alert(key+":"+value); }); alert(Canvas.color); /* undefined */
Dan gibt es mir alles zurück wie es sein müsste, als Ausgabe erscheint dann nacheinander z.B. -> color:green | lineHight:18px|...
Wenn ich allerdings versuche alert(Canvas.color); auszugeben, ohne $.each(), dann schreibt er mir "undefined". Fülle ich die Werte manuell ab, also schreibt statt Canvas[validKey] = value.split(":")[1]; nun Canvas["color"] = value.split(":")[1]; kann ich ohne Probleme auf Canvas.color; zugreifen. Allerdings ist das nicht sinn der Sache.
Hab ich vielleicht etwas übersehen, das sagt dass man Objekte nicht mit Variablen füllen darf?
Grüsse
Color -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Kannst du denn das Attribut mit Canvas['color'] abrufen?
-
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage