我正在尝试修改Google maps API v3方向脚本。我认为我已经牢牢掌握了组合变量等,但后来遇到了这个问题:
function calcRoute() {
var end = document.getElementById("start").value;
var street = document.getElementById("street").value;
var city = document.getElementById("city").value;
var state = document.getElementById("state").value;
var zip = document.getElementById("zip").value;
var start = street + ' ' + city + ' ' + state + ' ' + zip;
var request = {
origin:start,
destination:end,
travelMode: google.maps.DirectionsTravelMode.DRIVING
};
directionsService.route(request, function(response, status) {
if (status == google.maps.DirectionsStatus.OK) {
directionsDisplay.setDirections(response);
}
});
}
如果我创建一个id为start并更改的输入
var start = document.getElementById("start").value;
脚本再次起作用。但是我不能让我的组合变量起作用:
var start = street + ' ' + city + ' ' + state + ' ' + zip;
如果我按下一个按钮来提醒(开始)它会返回null ...我做错了什么?
更新:同样值得注意,
如果我跑:
onClick="alert(end)"
,而
<input id="end" name="destination" type="hidden" value="test" />
警报返回“对象HTMLInputElement”而不是“测试”。
答案 0 :(得分:1)
如果您想提醒您需要执行“结束”输入的值:
onClick="alert(document.getElementById('end').value)"
至于你的开始是null问题,我不相信其中一个变量是null,如果我试试这个:
null + " " + null
我得到“ null null ”(在chrome和firefox上测试过)。 所以,我的问题是:你在哪里尝试访问“开始”变量?它是来自在其中定义的函数内部还是外部定义的函数?您无法从 calcRoute 函数外部访问该变量。
所以如果你做的事情如下:
<input type="button" onclick="alert(start)" />
它必然会失败,而是做这样的事情:
var start;
function calcRoute() {
var end = document.getElementById("start").value;
var street = document.getElementById("street").value;
var city = document.getElementById("city").value;
var state = document.getElementById("state").value;
var zip = document.getElementById("zip").value;
start = street + ' ' + city + ' ' + state + ' ' + zip;
.....