kostenloser Webspace werbefrei: lima-city


Javascript Objekte und JQuery.each

lima-cityForumDie eigene HomepageHTML, CSS & Javascript

  1. Autor dieses Themas

    color

    Kostenloser Webspace von color, auf Homepage erstellen warten

    color hat kostenlosen Webspace.

    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
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. Kannst du denn das Attribut mit Canvas['color'] abrufen?
  4. Autor dieses Themas

    color

    Kostenloser Webspace von color, auf Homepage erstellen warten

    color hat kostenlosen Webspace.

    Hi,

    ne sry hab den Fehler auf der Zugfahrt entdeckt. Das Objekt wird richtig abgefüllt, allerdings mit Leerzeichen. Im Objekt stand also:
    " color ":" green";

    Ich hab jetzt alle Zeichen entfernt die da nix zu suchen haben und es geht.

    Grüsse
    Color
  5. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!