jQuery 函数没有 return 值到变量
jQuery function doesn't return value to Variable
我正在尝试 return jQuery 中的值并替换 div 中的文本。我的函数中的 console.log() 记录了正确的值,但是函数 return 对我的变量 (d) 没有任何影响,它应该替换 div.
中的文本
这是我的代码示例:
var d = getLatLong('Bahnhofplatz, 8000 Zürich');
$('#divResult').replaceWith(d);
//$("#divResult").replaceWith("asdsadsadsad");
function getLatLong(address) {
var geocoder = new google.maps.Geocoder();
geocoder.geocode({
address : address,
region: 'no'
},
function(results, status) {
if (status.toLowerCase() == 'ok') {
var coords = new google.maps.LatLng(
results[0]['geometry']['location'].lat(),
results[0]['geometry']['location'].lng()
);
var latlng = 'Latitute: ' + coords.lat() + ' Longitude: ' + coords.lng();
console.log(latlng);
return latlng;
}
}
);
};
这是一个 "working" jsFiddle link:
http://jsfiddle.net/u3rgocms/1/
感谢您的帮助。
这将不起作用,因为您 return 在地理编码器范围内调用的内部函数中的值。您可以将替换函数放在 return 字符串的位置。请记住,地理编码调用的结果函数将被异步调用。这是作为解锁功能实现的,因此您的主要业务逻辑不会等到响应准备就绪。
感谢您的帮助。
我的工作代码是:
getLatLong('Bahnhofplatz, 8000 Zürich', function(x){
$('#divResult').replaceWith(x[0]);
});
//$("#divResult").replaceWith("asdsadsadsad");
function getLatLong(address, callback) {
var geocoder = new google.maps.Geocoder();
geocoder.geocode({
address : address,
region: 'no'
},
function(results, status) {
if (status.toLowerCase() == 'ok') {
var coords = new google.maps.LatLng(
results[0]['geometry']['location'].lat(),
results[0]['geometry']['location'].lng()
);
var latlng = [coords.lat() , coords.lng()];
callback(latlng);
}
}
);
};
我正在尝试 return jQuery 中的值并替换 div 中的文本。我的函数中的 console.log() 记录了正确的值,但是函数 return 对我的变量 (d) 没有任何影响,它应该替换 div.
中的文本这是我的代码示例:
var d = getLatLong('Bahnhofplatz, 8000 Zürich');
$('#divResult').replaceWith(d);
//$("#divResult").replaceWith("asdsadsadsad");
function getLatLong(address) {
var geocoder = new google.maps.Geocoder();
geocoder.geocode({
address : address,
region: 'no'
},
function(results, status) {
if (status.toLowerCase() == 'ok') {
var coords = new google.maps.LatLng(
results[0]['geometry']['location'].lat(),
results[0]['geometry']['location'].lng()
);
var latlng = 'Latitute: ' + coords.lat() + ' Longitude: ' + coords.lng();
console.log(latlng);
return latlng;
}
}
);
};
这是一个 "working" jsFiddle link:
http://jsfiddle.net/u3rgocms/1/
感谢您的帮助。
这将不起作用,因为您 return 在地理编码器范围内调用的内部函数中的值。您可以将替换函数放在 return 字符串的位置。请记住,地理编码调用的结果函数将被异步调用。这是作为解锁功能实现的,因此您的主要业务逻辑不会等到响应准备就绪。
感谢您的帮助。
我的工作代码是:
getLatLong('Bahnhofplatz, 8000 Zürich', function(x){
$('#divResult').replaceWith(x[0]);
});
//$("#divResult").replaceWith("asdsadsadsad");
function getLatLong(address, callback) {
var geocoder = new google.maps.Geocoder();
geocoder.geocode({
address : address,
region: 'no'
},
function(results, status) {
if (status.toLowerCase() == 'ok') {
var coords = new google.maps.LatLng(
results[0]['geometry']['location'].lat(),
results[0]['geometry']['location'].lng()
);
var latlng = [coords.lat() , coords.lng()];
callback(latlng);
}
}
);
};