未捕获的TypeError:无法读取未定义的Google Map V3的属性“长度”

时间:2015-03-04 20:30:01

标签: javascript jquery google-maps-api-3

我知道这被问了很多时间,但我似乎无法找到解决问题的正确答案。

它实际上很直接:

service.getDetails(request, function(place, status) {
    if (status == google.maps.places.PlacesServiceStatus.OK) {

在其照片上使用getDetails之前使用过,因此我们知道它实际上是获取非空数据。接着,

for (var i = 0; i < place.photos.length; i++) {
    ....
}

之后我用了很长的照片。

请注意: 它工作正常,除非这个地方实际上没有拉图片......现在它正在抛弃“未捕获的TypeError:无法读取未定义的属性'长度”。

在调用place.photos.length之前是否存在可以放置的条件,以便我可以消除此错误消息?

感谢阅读!请帮忙。

1 个答案:

答案 0 :(得分:2)

只需先检查place.photos是否存在:

if (place.photos)
  for (var i = 0; i < place.photos.length; i++) 
    // ...

通过if检查,place.photosnull还是undefined(可能undefined最可能,如您的错误所示),那么循环不会被尝试。