【发布时间】:2021-06-11 17:49:07
【问题描述】:
使用一些 Javascript 脚本出现此错误:TypeError: undefined is not an object (evalating 'results[j].distance.text')
尝试按照其他帖子中的建议添加“var results = []”,但没有帮助。
function CalculatedRecommededDistance() {
event.preventDefault();
var origin = document.getElementById('pick_up_address').value;
var destination = document.getElementById('drop_off_address').value;
var geocoder = new google.maps.Geocoder();
var service = new google.maps.DistanceMatrixService();
var results = [];
service.getDistanceMatrix({
origins: [origin],
destinations: [destination],
travelMode: 'DRIVING',
unitSystem: google.maps.UnitSystem.METRIC,
avoidHighways: false,
avoidTolls: false,
avoidFerries: false
}, function(response, status) {
var originList = response.originAddresses;
var destinationList = response.destinationAddresses;
var outputDiv = document.getElementById('outputRecommended');
outputDiv.innerHTML = '';
//Display distance recommended value
for (var i = 0; i < originList.length; i++) {
var results = response.rows[i].elements;
for (var j = 0; j < results.length; j++) {
outputDiv.innerHTML += results[j].distance.text + ' in ' +
results[j].duration.text + '<br>';
}
}
});
}
【问题讨论】:
-
可能意味着:
results[j].distance未定义。 console.log(results) 在循环中,看看你是否得到了你所期望的。或循环前的响应。注意:var results = [];对代码没有影响。 -
在
var results = response.rows[i].elements;下尝试console.log(results)看看你在变量results里面有什么 -
您正在使用两个结果变量。一个在函数中,另一个在 for 循环中。如果有帮助,请尝试使用其他变量。
标签: javascript undefined typeerror