1

如何访问每个和元素features中的每个数组值?我试过这样:condohouse

attr.features.name,

...但undefined会在 Web 控制台中弹出。

JSON

({condos:[{Address:'123 Fake St.', Lat:'56.645654', Lng:'23.534546', features:[{id:'1', name:'Swimming Pool'},{id:'2', name:'BBQ'},{..etc..}]},{... another condo ...},{...}],houses:[{Address:'1 Main Ave.', Lat:'34.765766', Lng:'27.8786674', features:[{...},{...}]},{... another house ...}, {...}]})

代码

    $.each(markers, function(type, elements) {
        $.each(elements, function(index, attr){
            // if it's a house - make house marker. if it's a condo - make condo marker.
            if (type == 'houses') {
                $('#map').gmap('addMarker', { 'features': attr.features.name, 'position': new google.maps.LatLng(parseFloat(attr.lat), parseFloat(attr.lng)), 'bounds':true, 'icon':'house.png' });
            }
            else if (type == 'condos') {
                $('#map').gmap('addMarker', { 'features': attr.features.name, 'position': new google.maps.LatLng(parseFloat(attr.lat), parseFloat(attr.lng)), 'bounds':true, 'icon':'condo.png' });
            }
        });
    });
4

1 回答 1

1

您有一个包含两个数组的对象。您应该分别访问每个数组

$(markers.condos).each(function(index, elem) {
    $('#map').gmap('addMarker', {
        'features': elem.features,
        'position': new google.maps.LatLng(parseFloat(elem.lat), parseFloat(elem.lng)),
        'bounds': true,
        'icon': 'condo.png'
    });
});​

和同样的markers.houses

于 2012-06-13T14:23:10.150 回答