2016-05-30 7 views
-1

私のコードは天気が良くできています。私はGoogleのコードを検索してください、そして彼は働いています。しかし、問題はtemp_cプロパティは、1つまたは複数のノードのために存在しないことを意味私はurl : "http://api.wunderground.com/api/8dee7a0127c63e7f/forecast/conditions/lang:AR/q/"+address+".json",のgetエラー小枝でaddressを入れgecode search google withe wunderground

funcation Uncaught TypeError: Cannot read property 'temp_c' of undefined 

コード

function initMap() { 
    var map = new google.maps.Map(document.getElementById('map'), { 
    zoom: 8, 
    center: {lat: -34.397, lng: 150.644} 
    }); 
    var geocoder = new google.maps.Geocoder(); 

    document.getElementById('submit').addEventListener('click', function() { 
    geocodeAddress(geocoder, map); 
    }); 
} 

function geocodeAddress(geocoder, resultsMap) { 
    var address = document.getElementById('address').value; 
    geocoder.geocode({'address': address}, function(results, status) { 
    if (status === google.maps.GeocoderStatus.OK) { 
     resultsMap.setCenter(results[0].geometry.location); 
     var marker = new google.maps.Marker({ 
     map: resultsMap, 
     position: results[0].geometry.location 
     }); 
    } else { 
     alert('Geocode was not successful for the following reason: ' + status); 
    } 
    }); 
} 
jQuery(document).ready(function(weather) { 

$.ajax({ 
url : "http://api.wunderground.com/api/8dee7a0127c63e7f/forecast/conditions/lang:AR/q/"+address+".json", 
dataType : "jsonp", 

success : function(data) { 

     var tempCelsius = Math.round(data.current_observation.temp_c); 
       if (tempCelsius < 15){ 
        $("#temp").css("color", "#00DFF9"); 
       } else if (tempCelsius < 20){ 
        $("#temp").css("color", "#21DBE1"); 
       } else if (tempCelsius < 25) { 
        $("#temp").css("color", "#A0FF74"); 
       } else if (tempCelsius < 30) { 
        $("#temp").css("color", "##FEB900"); 
       } else if (tempCelsius < 35) { 
        $("#temp").css("color", "##FE7400"); 
       } else if (tempCelsius < 40) { 
        $("#temp").css("color", "#FE5100"); 
       } else if (tempCelsius > 45) { 
        $("#temp").css("color", "#FE0000"); 
       } else if (tempCelsius > 50) { 
        $("#temp").css("color", "##FE0000"); 
       } else if (tempCelsius > 55) { 
        $("#temp").css("color", "#E8250C"); 
       } 


       $("#temp").html(Math.round(tempCelsius)+ "&#176;C"); 
       $("#icon").html('<img src="'+data.current_observation.icon_url+'" class="center-block">'); 


var html = ''; 
    html += '<h3 class="text-center">'+data.current_observation.weather+'</h3>'; 

    html += '<h5 class="text-center">'+data.location.city+'</h5>'; 

    $("#deatils").append(html).hide().fadeIn("slow"); 
//next hour ..' 
      for(var i = 0; i < 4; i++) { 
      var weatherData = data.forecast.simpleforecast.forecastday[i]; 

      var html = '<div class="ui-grid-a"><div class="ui-block-a"><p id="celsius" class="ui-btn ui-corner-all ui-shadow">العليا ' + weatherData.high.celsius + '&deg;C ,<br> ' + weatherData.low.celsius + '&deg;C صغرى </p></div>'; 

html += '<div class="ui-block-b"><p class="ui-btn ui-corner-all ui-shadow">'+ weatherData.date.weekday + ' ' + weatherData.date.day+ ' </p><br></div>'; 

    $("#nexthour").append(html).hide().fadeIn("slow"); 


      } 


    //next days ..' 

var html = ''; 


    html += '</div>'; 

    $("#days").append(html).hide().fadeIn("slow"); 


} 
}); 
});//add this code. Need to close the 'jQuery(document)' 

答えて

0

です。

例:ために

var json = {}; 
json.current_observation = { 
     "image": { 
     "url":"http://icons.wxug.com/graphics/wu2/logo_130x80.png", 
     "title":"Weather Underground", 
     "link":"http://www.wunderground.com" 
     }, 
     "display_location": { 
     "full":"New York, NY", 
     "city":"New York", 
     "state":"NY", 
     "state_name":"New York", 
     "country":"US", 
     "country_iso3166":"US", 
     "zip":"10001", 
     "magic":"3", 
     "wmo":"99999", 
     "latitude":"40.75013351", 
     "longitude":"-73.99700928", 
     "elevation":"17.00000000" 
     }, 
     "temp_f":69.1, 
     "temp_c":20.6, 
     "relative_humidity":"95%", 
     "wind_string":"Calm", 
     "wind_dir":"جنوب", 
     "wind_degrees":171, 
     "history_url":"http://www.wunderground.com/weatherstation/WXDailyHistory.asp?ID=KNYNEWYO395", 
     "ob_url":"http://www.wunderground.com/cgi-bin/findweather/getForecast?query=40.746910,-73.992836", 
     "nowcast":"" 
    } 

は、あなたがhasOwnPropertyメソッドを使用することができ、キー/フィールド/プロパティが存在するかどうかをチェックします。

json.current_observation.hasOwnProperty("temp_c"); //returns true 
json.current_observation.hasOwnProperty("imaginary"); //returns false