我在jquery中加载谷歌地图json,我正确地收到了名为'data'的json对象
有时 - 我无法准确确定何时或为何,这就是我来到这里的原因 - 即使我收到常规值,但是firebug控制台读取它是未定义!
例如,我在我的js中有以下这一行:
console.log(data.Placemark[i].AddressDetails.Country.AdministrativeArea.SubAdministrativeArea.Locality.PostalCode.PostalCodeNumber);
在我的Firebug控制台中我首先看到了zipcode的正确值(10018),然后我看到了这个错误:
data.Placemark [i] .AddressDetails.Country.AdministrativeArea.SubAdistrativeistrativeArea.Locality.PostalCode is undefined
我的意思是,如果我得到了价值......怎么可能是未定义的?
这里是完整的代码
$.ajax(
{
dataType: 'json',
url: "http://maps.google.com/maps/geo?q=" + myaddress + "&key=" + myapiKey + "&sensor=false&output=json&callback=?",
success: function (data, textStatus)
{
for (i = 0; i < data.Placemark.length; i++)
{
console.log(data.Placemark[i].AddressDetails.Country.AdministrativeArea.SubAdministrativeArea.Locality.PostalCode.PostalCodeNumber);
}
},
error: function (data)
{
/*nothing*/
}
});
我可以添加另一个细节:只有当data.length为&gt;时才会发生错误。 1(基本上当我得到多个与我输入相对应的地址时)
答案 0 :(得分:1)
我想你说的一切。当循环运行不止一次时(即长度> 1时),您将遍历第二个项目,该项目没有它所启动的属性。第一次迭代确实如此。