如何打印函数返回的变量?

时间:2012-06-03 00:57:05

标签: javascript jquery function

我有这个功能:

function findAddressViaGoogle(address){
     var geocoder = new google.maps.Geocoder();
     geocoder.geocode( { 'address': address }, function(results, status) {
        if (status == google.maps.GeocoderStatus.OK) {
            return results[0].formatted_address;
        } else {
            console.log("Unable to find address: " + status);
        }
     });
}

如何从此功能打印返回的值?

如果我这样做:

$('#location-suggest').text('Do you mean <a>'+findAddressViaGoogle($(this).val())+'</a> ?');

打印未定义的

3 个答案:

答案 0 :(得分:2)

您在寻找document.write吗?

答案 1 :(得分:2)

像这样:

$(".putYourSelectorHere").html(findAddressViaGoogle())

.putYourSelectorHere替换为您的选择器(例如#output)。如果要在体内打印结果,请使用body选择器:

$("body").html(findAddressViaGoogle())

http://api.jquery.com/html/

答案 2 :(得分:2)

Geocoder()内的某个地方调用回调,并且在findAddressViaGoogle()函数内未收到回传值。

您可以初始化变量并将值传递给它:

function findAddressViaGoogle(address){
  var address = "";
  var geocoder = new google.maps.Geocoder();

  geocoder.geocode( { 'address': address }, function(results, status) {
    if (status == google.maps.GeocoderStatus.OK) {
      address = results[0].formatted_address;
    } else {
      console.log("Unable to find address: " + status);
    }
  });

  return address;
}

var myAddress = findAddressViaGoogle('foobar');
alert(myAddress);

另外,请记住,必须先调用函数才能返回任何内容。

所以要传递收集的值:

$('#myElementID').html(findAddressViaGoogle('foobar'));