bert: for (var teil in textteile)

Mein JS flippt aus. Ich hab ne ganz simple Funktion:

  
text = '123&;654';  
textteile = text.split("&;");  
for (var teil in textteile) {  
	ausgabe += '<div>' + textteile[teil] + '</div>';  
	alert(teil);  
} 

hab auch mit alert die vars überprüft:

alert(textteile) spuckt auch richtigerweise "123,654" aus.

alert(teil) sollte jetzt eigentlich 2 mal erfolgen mit folgender Ausgabe:
1. --> "0"
2. --> "1"

Stattdessen kommt es sehr häufig:
1. --> "0"
2. --> "1"
3. --> "copy"
4. --> "remove"
5. --> "contains"
6. --> "associate"
(...)
x. --> "rgbToHex"

Woran kann das liegen? Habe die Variablen schon alle umbenannt, falls sie irgendwie doppelt verwendet werden.. Die Funktion ist in das CMS joomla eingebettet. Aber da sich ja textteile richtigerweise aus "123,654" ergibt, verstehe ich nicht woher der Rest kommt. Das hat übrigens auch alles Inhalte. Also textteile[teil] spuckt da ganze funktionen aus, die ins div geschrieben werden.

Kann mir jemand sagen, woher das kommt?

Danke und Gruß

  1. Hi,

    Stattdessen kommt es sehr häufig:

    1. --> "0"
    2. --> "1"
    3. --> "copy"
    4. --> "remove"
    5. --> "contains"
    6. --> "associate"
      (...)
      x. --> "rgbToHex"

    Woran kann das liegen?

    Daran, dass das alles Eigenschaften oder Methoden des Objektes sind, dass du mit for-in durchläufst.

    Warum nutzt du keine for-Schleife, wenn du einfach nur die Werte in einem Array durchlaufen willst?

    MfG ChrisB

    --
    Light travels faster than sound - that's why most people appear bright until you hear them speak.
    1. Woran kann das liegen?

      Daran, dass das alles Eigenschaften oder Methoden des Objektes sind, dass du mit for-in durchläufst.

      Warum nutzt du keine for-Schleife, wenn du einfach nur die Werte in einem Array durchlaufen willst?

      Habe das als Beispiel im Internet gefunden. Auf meiner Beispiel-Seite hats auch wunderbar funktioniert. Nach dem EInbinden in joomla halt nicht mehr. Mit normaler for-Schleife funktionierts jetzt. Danke!
      Kannst du mir auch sagen, warum bei joomla auf einmal so viele Eigenschaften oder Methoden zu dem Objekt gehören? Der Variablenname ist doch einmalig. Kann jommla JEDEM objekt einfach weitere Methoden/Eigenschaften zuordnen?

      Soweit scheinen meine JS-Kenntnisse nicht zu reichen..

      1. Hi,

        Kannst du mir auch sagen, warum bei joomla auf einmal so viele Eigenschaften oder Methoden zu dem Objekt gehören? Der Variablenname ist doch einmalig. Kann jommla JEDEM objekt einfach weitere Methoden/Eigenschaften zuordnen?

        nicht nur Joomla, sondern jedes System, das mit JavaScript arbeitet. Der Objektorientierungsansatz von JavaScript ist prototypisch, d.h. man kann *alle* (z.B.) Strings verändern - bereits existierende und noch zu erzeugende.

        Cheatah

        --
        X-Self-Code: sh:( fo:} ch:~ rl:| br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
        X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
        X-Will-Answer-Email: No
        X-Please-Search-Archive-First: Absolutely Yes
      2. Kannst du mir auch sagen, warum bei joomla auf einmal so viele Eigenschaften oder Methoden zu dem Objekt gehören? Der Variablenname ist doch einmalig. Kann jommla JEDEM objekt einfach weitere Methoden/Eigenschaften zuordnen?

        Joomla (oder ein Plugin) binden wohl eine JS Bibliothek ein, dass das Array Objekt um Eigenschaften erweitert. Das ist ein übliches Verfahren um häufig verwendete Aufgaben zu vereinfachen.

        z.b. sowas in der Art:

        Array.prototype.find = function(el) {  
            for(var i = 0; i < this.length; i++) if(el === this[i]) return true;  
            return false;  
        }  
        var test = [0,1,2,3,4,5];  
        alert(test.find(3));  
        
        

        Struppi.