我正在写JavaScript,它提取用户GPS坐标(一次),然后计算他/她与我在页面上显示的餐馆列表之间的距离。最大调用堆栈超过
$(document).bind("DOMNodeInserted", function(e) {
if($('#user-gps').length) {
$('.restaurant').each(function(index, value) {
var lat = $(value).find('.latitude').attr('data-src');
var long = $(value).find('.longitude').attr('data-src');
var distance = geolocator.calcDistance({
from: {
latitude: $('#user-gps').attr('lat'),
longitude: $('#user-gps').attr('long')
},
to: {
latitude: lat,
longitude: long
},
formula: geolocator.DistanceFormula.HAVERSINE,
unitSystem: geolocator.UnitSystem.METRIC
});
var string = Math.round(distance * 10)/10 + "km";
var restaurantTitle = '#restaurant-' + index + ' .restaurant-title';
//$(restaurantTitle).append(string);
//
console.log($(restaurantTitle));
//console.log($(value).find('.restaurant-title').text() + " - " + Math.round(distance, -1) + "km");
$(restaurantTitle).append('<span>' + string + '</span>');
});
}
});
我正在循环浏览每家餐馆并计算距离,之后我将字符串格式化为显示3.2km的值。然后我想在DOM中追加这个。
$(restaurantTitle).append('<span>' + string + '</span>');
只要我试试这个,我得到一个最大调用堆栈在控制台超出错误。
我已经尝试了几种方法来确保我只选择当前正在迭代的元素。我甚至给每个.restaurant一个独特的ID。选择器工作得很好,但我不能追加或以任何方式添加字符串而不会出现错误。
任何帮助,非常感谢。
请发表**可运行什么** [MCVE],用栈片断(在'<>'工具栏的问题按钮)。这将让人们看到问题并帮助您解决问题,同时确保所有必要的内容都在现场。 –