Javascript循环-第二个变量不显示
|
这是代码:
<script type=\"text/javascript\">
var offender_locations = [
[\"10010\", \"xxxxx\", 3],
[\"10001\", \"xxxxx\", 2],
[\"10002\", \"zzzzz\", 1]
];
for (i = 0; i < offender_locations.length; i++) {
var address = offender_locations[i][0];
var icon_img = offender_locations[i][1];
}
</script>
这是输出:
1)10010-zzzzz
2)10001-zzzzz
3)10002-zzzzz
如您所见,var地址输出正确的值,但是* var icon_img *总是重复相同的值。
我是一名Javascript初学者,我尝试了所有可以想到的方法,但仍得到了相同的结果。
附言我在这里粘贴了完整的脚本:
<script type=\"text/javascript\">
var offender_locations = [
[\"10010\", \"offender_icon.png\", 3],
[\"10001\", \"offender_icon.png\", 2],
[\"10002\", \"visitor_icon.png\", 1]
];
var myOptions = {
zoom: 10,
center: latlng,
mapTypeId: google.maps.MapTypeId.ROADMAP
};
var map = new google.maps.Map(document.getElementById(\"map\"), myOptions);
var latlng = new google.maps.LatLng(0, 0);
for (i = 0; i < offender_locations.length; i++) {
var infowindow = new google.maps.InfoWindow();
var geocoder_map = new google.maps.Geocoder();
var address = offender_locations[i][0];
var icon_img = offender_locations[i][1];
geocoder_map.geocode({
\'address\': address
}, function (results, status) {
if (status == google.maps.GeocoderStatus.OK) {
map.setCenter(results[0].geometry.location);
var marker = new google.maps.Marker({
map: map,
position: map.getCenter(),
icon: icon_img
});
google.maps.event.addListener(marker, \'click\', (function (marker, i) {
return function () {
infowindow.setContent(offender_locations[i][0]);
infowindow.open(map, marker);
}
})(marker, i));
} else {
alert(\"The requested offender is not mappable !\")
};
});
}
</script>
该脚本中的标记都是正确的邮政编码,但是它们都显示相同的图标(visitor_icon.png)!
没有找到相关结果
已邀请:
1 个回复
良阑纠苫
的时间(在传递给
的回调中)时,外部for循环已完成,
具有上一次迭代的值。它适用于
,因为它是在循环内而不是稍后进行求值的。 您必须“捕获”
的当前值,并且可以使用立即函数来实现:
也许您需要更多的变量来执行此操作...不确定。