2017-04-26 55 views
0

我的代碼是相當簡單的,所以我很驚訝,我找不到錯誤:JavaString聲明的字符串數組返回undefined

... 
<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> 

的代碼只是創建了一堆文字的說法,而不是內容「不確定」樹可變。 完整的代碼是在這個站點上運行:http://www.stromytrebonska.cz/mapa/

+0

你提供的代碼並不完全匹配您的網站的代碼。在你的網站上,你正在聲明一個回調方法。因此,外循環計數爲41(長度爲+1),然後回調方法在一些ajax之後執行,但是count仍然是41. Javascript範圍再次出現。 – Nate

+0

在第202行放置一個斷點或'if(kml!= null){'。這是在回調開始時執行的。看一下'count'的值。它已經大於數組的長度。 – Nate

+0

@Nate謝謝,我不確定一個回調是什麼,所以我沒有發現它,或者認爲重要的是要包括在問題中,再次感謝你,下次我會知道。這是我第一次接觸javascript。 – totalolage

回答

0

長度不是方法,是一個屬性

var trees_sz = trees.length; 
+0

謝謝,這是我在這個問題上的一個錯字。 – totalolage

1

迭戈提到,長度爲一個屬性,你必須去掉括號。

此外,我不知道爲什麼你有該傳播算子在該陣列上。將其刪除是因爲它會引發錯誤。

這裏的工作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將「...」放在數組中,讓我們知道還有其他字符串。 – Nate

+0

事實上,那裏還有大約40個其他字符串,我認爲它會混淆這個問題。我不知道...是一個JavaScript運算符 – totalolage

+0

我知道這是簡單的事情!哈哈明白了,對不起傢伙:) – alexr101