Javascript 返回null的变量
我正在尝试修改Google maps API v3方向脚本。我原以为我对组合变量等有着坚定的把握,但后来我遇到了这个问题:Javascript 返回null的变量,javascript,google-maps,google-maps-api-3,Javascript,Google Maps,Google Maps Api 3,我正在尝试修改Google maps API v3方向脚本。我原以为我对组合变量等有着坚定的把握,但后来我遇到了这个问题: function calcRoute() { var end = document.getElementById("start").value; var street = document.getElementById("street").value; var city = document.getElementById("city").value;
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和change的输入
var start = document.getElementById("start").value;
这个脚本又起作用了。但是,我无法使组合变量工作:
var start = street + ' ' + city + ' ' + state + ' ' + zip;
如果我做一个按钮来提醒(开始)它返回空。。。我做错了什么
更新:也值得注意
如果我跑步:
onClick="alert(end)"
当
警报将返回“object HTMLInputElement”而不是“test”。如果要警报“end”输入的值,则需要执行以下操作:
onClick="alert(document.getElementById('end').value)"
关于开始为空的问题,如果我尝试以下方法,我不相信其中一个变量为空:
null + " " + null
我得到了“null”(在chrome和firefox上测试)。
所以,我的问题是:从哪里访问“start”变量?它是来自定义它的函数内部还是外部?您不能从calcRoute函数外部访问该变量
因此,如果您正在执行以下操作:
<input type="button" onclick="alert(start)" />
检查每个单独的变量,其中一个变量可能为空。如果您将链接发布到页面,或者交替使用类似JSFIDLE的东西并将其发布到页面,我们可以在HTML和DOM以及所有内容的上下文中查看整个代码。如果您注意到第一行“var end=document.getElementById(“start”).value;”它应该是'var end=document.getElementById(“end”).value;'这修复了脚本,但我仍然不能得到警惕工作…非常感谢你的解释。哈哈,我正在做你说的会失败的事。至少现在,它可以解释为什么失败了。我只是有一个小小的顿悟,还有很多是有意义的。再次感谢!
<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;
.....