我的代码附在下面,虽然它是更大代码的一部分
<html>
<head>
<style>
#results{margin-top:100px; width:600px; border:1px solid #000000; background-color:#CCCCCC; min-height:200px;}
</style>
<script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=false"></script>
<script src="https://maps.googleapis.com/maps/api/js?sensor=false&libraries=places"></script>
<script src="http://code.jquery.com/jquery-latest.min.js" type="text/javascript"></script>
</head>
<body>
<div id="results"></div>
<script>
var input="Taj Mahal India";
var url = "http://maps.googleapis.com/maps/api/geocode/json?address=" + input + "&sensor=false";
var check = $.getJSON(url, function (data) {
console.log("inside getjson");
console.log(data);
$.each(data.results.address_components, function(i,inside){
if(inside.types[0]=="route"){
$("#results").append('<p> route : '+this.long_name +'</p>');
}
if(inside.types[0]=="locality"){
$("#results").append('<p> locality : '+this.long_name +'</p>');
}
if(inside.types[0]=="administrative_area_level_2"){
$("#results").append('<p> administrative area 2 : '+this.long_name +'</p>');
}
if(inside.types[0]=="administrative_area_level_1"){
$("#results").append('<p> administrative area 1 : '+this.long_name +'</p>');
}
if(inside.types[0]=="country"){
$("#results").append('<p> country : '+this.long_name +'</p>');
}
});
});
</script>
</body>
</html>
问题在于它不起作用。我强烈怀疑我在$.each(data.results.address_components, function(i,inside)
行中做错了什么。
Taj Mahal India的JSON在这里http://maps.googleapis.com/maps/api/geocode/json?address=Taj%20Mahal%20India&sensor=false
答案 0 :(得分:2)
应该是
$.each(data.results[0].address_components, function(i,inside)
而不是
$.each(data.results.address_components, function(i,inside)
因为您正在从第一个results
集中获取数据。这是demo
注意:我不知道是否有多个results
。如果可以,那么您必须首先遍历results
,然后在address_components
内进行迭代。
答案 1 :(得分:1)
请注意'this
'关键字的范围,并且@Harry指出它需要results[0]
。以下是未经测试的:
var check = $.getJSON(url, function (data) {
console.log("inside getjson");
console.log(data);
$.each(data.results[0].address_components, function(i,inside){
if(inside.types[0]=="route"){
$("#results").append('<p> route : '+inside.long_name +'</p>');
}
if(inside.types[0]=="locality"){
$("#results").append('<p> locality : '+inside.long_name +'</p>');
}
if(inside.types[0]=="administrative_area_level_2"){
$("#results").append('<p> administrative area 2 : '+inside.long_name +'</p>');
}
if(inside.types[0]=="administrative_area_level_1"){
$("#results").append('<p> administrative area 1 : '+inside.long_name +'</p>');
}
if(inside.types[0]=="country"){
$("#results").append('<p> country : '+inside.long_name +'</p>');
}
});
});
请参阅@Harry的this fiddle