函数在控制台中显示“undefined”

时间:2015-03-16 20:04:54

标签: javascript jquery google-maps-api-3

我的代码:

    function geocodeAddress(address){
        var geocoder = new google.maps.Geocoder();
        geocoder.geocode(
            {
                'address':address   
            },
            function(results,status){
                if(status===google.maps.GeocoderStatus.OK){ 
                    var resultsObj = results[0].geometry;
                    var resultsLocationObj = resultsObj['location'];
                    var lat = resultsLocationObj['k'];
                    var lon = resultsLocationObj['D'];
                    var coordinatesObj = {
                        address : address,
                        latitude : lat,
                        longitude : lon
                    };
                    return coordinatesObj;
                }
            }
        );
    }

$(document).ready(function(){
function initialize(){
        $('#save-address').click(
            function saveAddress(){
                var addressText = $('#address').val();
                console.log(geocodeAddress(addressText));
            }
        );
}
    google.maps.event.addDomListener(window, 'load', initialize);

})

当该功能运行时,控制台上会打印两件事:

  1. undefined at line XXXX,其中XXXX是第二行 console.log()
  2. coordinatesObj(包含地址,纬度和经度的对象)的值
  3. 我希望第二个console.log()显示coordinatesObj的值。

    我该怎么办?

1 个答案:

答案 0 :(得分:1)

如果没有看到你的标记,我们就无法确定发生了什么,但是从你已经显示的代码中我怀疑 - 我怀疑没有带有"地址&#的HTMLInputElement元素34。

$("#invalidId").val(); // returns `undefined`