0

私はこの機能を持っています:

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> ?');

未定義を出力します

4

3 に答える 3

2

document.writeをお探しですか?

于 2012-06-03T00:59:48.897 に答える
2

このような:

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

.putYourSelectorHereセレクターと交換してください(#outputたとえば)。結果を本文で印刷する場合は、bodyセレクターを使用します。

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

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

于 2012-06-03T01:06:34.477 に答える
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'));
于 2012-06-03T01:14:37.870 に答える