Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/404.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 返回null的变量_Javascript_Google Maps_Google Maps Api 3 - Fatal编程技术网

Javascript 返回null的变量

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;

我正在尝试修改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和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;

.....