我有這個JavaScript應該循環訪問我的XML並獲取我的數據。用於從XML獲取數據的JavaScript循環
下面是javascript代碼,我有:
function load() {
var map = new google.maps.Map(document.getElementById("map"), {
zoom: 13,
mapTypeId: 'roadmap'
});
var infoWindow = new google.maps.InfoWindow;
var line =[];
downloadUrl("exportintoxml2.php", function(data) {
var xml = data.responseXML;
var devs = xml.documentElement.getElementsByTagName("DEVS"),
data = {};
for (var n = 0; n < devs.length; n++) {
var dev = devs[n],
markers = dev.getElementsByTagName("marker"),
dev_id = dev.getAttribute('DEVS');
data[dev_id] = [];
for (var i = 0; i < markers.length; i++) {
var name = markers[i].getAttribute("USER");
var imei = markers[i].getAttribute("IMEI");
var gsm1 = markers[i].getAttribute("GSM1");
var devices = markers[i].getAttribute("DEVS");
var point = new google.maps.LatLng(
parseFloat(markers[i].getAttribute("LAT")),
parseFloat(markers[i].getAttribute("LON")));
var html = "<b>" + name + "</b> <br/>" + imei;
var icon = customIcons[devices] || {};
var marker = new google.maps.Marker({
map: map,
position: point,
icon: icon.icon,
shadow: icon.shadow
});
bindInfoWindow(marker, map, infoWindow, html);
data[dev_id].push = ({ 'point' : point });
line.push(data[1]);
}
}
map.setCenter(point, 16);
var polyline = new google.maps.Polyline({
path: line,
strokeColor: "#FF0000",
strokeOpacity: 1.0,
strokeWeight: 2
});
polyline.setMap(map);
});
}
我需要一個變量(或幾個變量),它包含所有每DEV數據分開,我不知道如何將它包含在這個循環。 我需要能夠顯示具有不同折線的不同設備,而不需要彼此連接。
這怎麼解決?
好的,謝謝你的循環。現在它遍歷所有的DEVS並獲取所有的數據。我仍然不清楚的是如何對數據中的數據進行排序[]?我仍然是新來的JavaScript,我還沒有很好的數組。我只需要讓我們說一個具有每個DEV的數據的數組,比如dev1 [],dev2 []等,可以這樣做嗎? – 2011-06-13 01:21:02
你可以做到這一點,但你應該把它們放在一個物體中。看到上面編輯的代碼。 – glortho 2011-06-13 03:03:18
好的,非常感謝這個建議,但我仍然無法實現我的目標。 :)請你看看上面修改過的代碼是我有的完整代碼嗎? – 2011-06-13 22:53:05