-4

こんにちは私のコードは以下に添付されていますが、それはより大きなコードの一部です

<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)ます。

タージ マハル インドの JSON はこちらhttp://maps.googleapis.com/maps/api/geocode/json?address=Taj%20Mahal%20India&sensor=false

4

2 に答える 2

2

そのはず

$.each(data.results[0].address_components, function(i,inside)

それ以外の

$.each(data.results.address_components, function(i,inside)

results最初のセットからデータを取得しているためです。ここにデモがあります

注:複数存在する可能性があるかどうかはわかりませんresults。可能な場合は、最初に を反復処理してresultsから、その内部で を反復処理する必要がありますaddress_components

于 2013-08-31T15:39:43.617 に答える
1

this' ' キーワードの範囲に注意してくださいresults[0]。@Harry が指摘したように必要です。以下はテストされていません。

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によるこのフィドルを参照してください

于 2013-08-31T15:03:06.837 に答える