2017-04-26 4 views
0

meinen Code ist ziemlich einfach so überrascht, dass ich bin, dass ich nicht den Fehler finden:JavaString erklärte String-Array gibt undefined zurück

... 
<div id="TreeBoxes" style="float:right;"></div> 
... 
<script type="text/javascript"> 
    var trees = new Array("Ambroňe","Borovice","Břízy",...,"Zmarličníky"); 
    var trees_sz = trees.length; 
    for(count = 0; count < trees_sz; count++) { 
     var txt = document.createTextNode(trees[count]); 
     document.getElementById("TreeBoxes").appendChild(txt); 
    } 
</script> 

Der Code nur ein Bündel von Text erstellt sagen „undefiniert“ anstelle des Inhalts der Bäume variabel. Der vollständige Code auf dieser Seite ausgeführt wird: http://www.stromytrebonska.cz/mapa/

+0

Sie Code versehen sind nicht perfekt Sie Website Code entsprechen. Auf Ihrer Site deklarieren Sie eine Rückrufmethode. Also die äußere for-Schleife zählt bis 41 (was Länge + 1 ist), dann wird die Callback-Methode nach etwas Ajax ausgeführt, aber die "count" ist immer noch bei 41. Javascript-Bereich schlägt wieder. – Nate

+0

Setzen Sie einen Haltepunkt in Zeile 202 oder 'if (kml! = Null) {'. Dies wird zu Beginn Ihres Callbacks ausgeführt. Sehen Sie sich den Wert von "count" an. Es ist bereits größer als die Länge Ihres Arrays. – Nate

+0

@Nate danke, ich war mir nicht sicher, was genau ein Rückruf war, also habe ich es nicht entdeckt oder denke, es war wichtig, in die Frage aufzunehmen, danke nochmal, das nächste Mal werde ich es wissen. Dies ist das erste Mal, dass ich Javascript berühre. – totalolage

Antwort

0

Länge keine Methode ist, ist eine Eigenschaft

var trees_sz = trees.length; 
+0

Danke, es war ein Tippfehler in meiner Frage. – totalolage

1

Als Diego erwähnt, Länge eine Eigenschaft ist für Sie die Klammer entfernen haben.

Auch ich bin mir nicht sicher, warum Sie diesen Spread-Operator auf diesem Array haben. Entfernen Sie es, weil es einen Fehler auslöst.

Hier ist ein Arbeits js fiddle

var trees = new Array("Ambroňe","Borovice","Břízy", "Zmarličníky"); 
var trees_sz = trees.length; 

console.log(trees); 

for(count = 0; count < trees_sz; count++) { 
    var txt = document.createTextNode(trees[count]); 
    document.getElementById("TreeBoxes").appendChild(txt); 
} 
+0

Filip setzte "...", um uns mitzuteilen, dass im Array andere Zeichenfolgen vorhanden waren. – Nate

+0

In der Tat gibt es dort etwa 40 andere Saiten, ich dachte, es würde die Frage überfluten. Ich wusste nicht, dass ... ist ein Javascript-Operator – totalolage

+0

Ich wusste, dass es so etwas einfach war! haha Got it, Entschuldigung Jungs :) – alexr101