2014-11-04 83 views
0

嘿所有我有以下代碼:jQuery的陣列對象獲取值

var items = []; 
$(xml).find("Placemark").each(function() { 
    var tmp_latLng = $(this).find("coordinates").text(); 

    tmp_latLng = tmp_latLng.split(","); 

    items.push({ 
     name: $(this).find("name").text(), 
     snippet: $(this).find("Snippet").text(), 
     description: $(this).find("description").text(), 
     lat: tmp_latLng[0], 
     lng: tmp_latLng[1], 
     distance: $(this).find("distance").text() 
    }); 
}); 

var markerNodes = items; 

if (markerNodes.length > 0) { 
    howManyMarkers = markerNodes.length; 

    for (var i = 0; i < markerNodes.length; i++) { 
     console.log(markerNodes[i].Snippet); 

     var name = markerNodes[i].getAttribute("Snippet"); 
     var address = markerNodes[i].getAttribute("Snippet"); 
     var description = markerNodes[i].getAttribute("description"); 
     var distance = parseFloat(markerNodes[i].getAttribute("distance")); 
     var latlng = new google.maps.LatLng(parseFloat(markerNodes[i].getAttribute("lat")), parseFloat(markerNodes[i].getAttribute("lng"))); 

     createOption(name, distance, i); 
     createMarker(latlng, name, address); 
     bounds.extend(latlng); 
    } 

    map.fitBounds(bounds); 
} else { 
    alert('Sorry, there are no stores that close to your location. Try expanding your search radius.'); 
} 

該錯誤是在的console.log(markerNodes [I]是.snippet);。該錯誤是未捕獲的類型錯誤:未定義不是函數

另外,markerNodes [I] .getAttribute(「片段」)具有遺漏的類型錯誤的誤差:未定義不是函數

我會錯過什麼?

回答

0

JavaScript是區分大小寫的。物業片段是小寫,使用

console.log(markerNodes[i].snippet); 
+0

和第二個未定義的問題? – Phil 2014-11-04 20:09:46

+0

完全相同的原因。 – 2014-11-04 20:10:32

+0

'markerNodes [i] .getAttribute(「Snippet」)與片段的拼寫有什麼關係?什麼是'getAttribute()'? – Phil 2014-11-04 20:11:45

0

應該

markerNodes[i].snippet 

(請注意大小寫)

+1

'markerNodes [i] .snippet'和'markerNodes [i] [「snippet」]'之間的函數沒有區別。 – Guffa 2014-11-04 20:12:06

+0

@Guffa好的,等一下。 – nicael 2014-11-04 20:12:44

0

標識符在Javascript的情況下sensetive,所以它應該是snippet,不Snippet

console.log(markerNodes[i].snippet); 

getAttribute method與元素使用,不反對。剛剛訪問屬性爲對象的成員:

var name = markerNodes[i].snippet; 
var address = markerNodes[i].snippet; 
var description = markerNodes[i].description; 
var distance = parseFloat(markerNodes[i].distance); 
var latlng = new google.maps.LatLng(parseFloat(markerNodes[i].lat), parseFloat(markerNodes[i].lng)); 

注:也許你想要得到的值從name屬性,而不是snippet財產name變量。