变量返回null

时间:2012-02-24 23:50:25

标签: 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;
    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”而不是“测试”。

1 个答案:

答案 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;

.....