无法读取未定义的属性 - JavaScript

时间:2015-10-09 08:51:36

标签: javascript jquery

我有代码geoloaction auto的问题。按下按钮时,当前位置出错:

  

未捕获的TypeError:无法读取属性' coords'未定义的

代码:

var date    = new Date();
var Today   = date.getDay();


function loadWeather(cityCoords){

    var latlng = cityCoords.coords.latitude + "," + cityCoords.coords.longitude;
    var forecastURL = "https://api.forecast.io/forecast/3a6d5408bc15a469385cf59ee96c0205/" + latlng +"?lang=ar&si&raw";

    $.ajax({
        url: forecastURL,
        jsonpCallback: 'jsonCallback',
        contentType: "application/json",
        dataType: 'jsonp',
        success: function(json) {
            updateCurrentWeather(json);
            weeklyForecast(json);

        },
        error: function(e) {
            console.log(e.message);
        }
    });
}



function updateCurrentWeather (json) {
        $("#current_temp").html(Math.round(json.currently.temperature) + "; C");
        $("#current_summary").html ( " الحالة الجوية : "+ json.currently.summary) ;
        $("#current_temp").attr("data-icon",icons[json.currently.icon]);
        $("#current_windSpeed").html( " الرياح : "+json.currently.windSpeed);

}

function weeklyForecast (json) {

    var Day = Today; 
    var outhtml;

    for ( var i = 0; i <= 6; i++)
    {
        outhtml = "";
        Day = Day + 1

        //check if day is greater than number in week
        if ( Day === 7) {
            Day = 0;
        }

        //format html

        outhtml = '<li><h3 class="icon" data-icon="' + icons[json.daily.data[i].icon] + ' ">' + days[Day];
    outhtml = outhtml + (json.daily.data[i].summary);               
        outhtml = outhtml + ", العليا " + Math.round(json.daily.data[i].temperatureMax) + "&#176; C   ";
        outhtml = outhtml + " , صغرى " + Math.round(json.daily.data[i].temperatureMin) + "&#176; C   ";


        outhtml = outhtml + '</h3></li>';

        //append new html li item to list view
        $(".WeekForecast").append(outhtml);
    }
}








function loadDefaultCity() {
    loadCity("Baghdad");
}


function loadCity(city) {
    $("#location").html(city);

    if (city.toLowerCase() == "current location") {
        if ( navigator.geolocation ) {
            navigator.geolocation.getCurrentPosition(loadWeather, loadDefaultCity);
        } else {
            loadDefaultCity();
        }
    } else {
        loadWeather(cities[city.toLowerCase()]);
    }
}

另一个数据javascript出现城市[city.toLowerCase()]已定义

        var icons = {
            "clear-day"             : "B",
            "clear-night"           : "C",
            "rain"                  : "R",
            "snow"                  : "G",
            "sleet"                 : "X",
            "wind"                  : "S",
            "fog"                   : "N",
            "cloudy"                : "Y",
            "partly-cloudy-day"     : "H",
            "partly-cloudy-night"   : "I",
    };

    var cities = {
            "baghdad"               : { coords : { latitude : "33.3333",        longitude:  "44.3833"       }},

            "current location"      : ""
    };

    var days = {
            "0"     :   "الاحد : ",
            "1"     :   "االاثنين : ",
            "2"     :   ": الثلاثاء",
            "3"     :   "الاربعاء : ",
            "4"     :   "الخميس : ",
            "5"     :   "الجمعة : ",
            "6"     :   "السبت : "
    };

            var hours = {
            "0"     :   "1",
            "1"     :   "2",
            "2"     :   "3",
            "3"     :   "4",
            "4"     :   "5",
            "5"     :   "6",
            "6"     :   "7",
    };

0 个答案:

没有答案