Я получаю сообщение «Не могу прочитать свойство« 0 »неопределенной ошибки. Я не мог найти проблему. Я думаю, что у javascript-файла есть проблема, но я не мог видеть. Я написал сценарий дважды, но у js-файла есть проблема.Невозможно прочитать свойство '0' of undefined
HTML файла
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta charset="UTF-8">
<title>FreeCodeCamp - Local Weather</title>
<script src="https://code.jquery.com/jquery-3.0.0.js"></script>
<script type="text/javascript" src="app.js"></script>
<link rel="stylesheet" href="http://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css">
<link rel="stylesheet" type="text/css" href="style.css"/>
</head>
<body>
<div id="main" class="text-center container">
<h1>FreeCodeCamp - Weather App</h1>
<div class="row" id="fade">
<div style="margin-top: 200px;">
<span id="city"></span>
<span id="country"></span>
<div id="weather"><img id="w-icon"><span id="temp"></span></div>
<span id="description"></span>
</div>
</div>
<div id="author">
<span> Created by Kaan Karaca</span><br>
<span><a href="http://github.com/h4yfans">@GitHub</a> </span><br>
<span><a href="https://www.freecodecamp.com/h4yfans">@FreeCodeCamp</a> </span>
</div>
</div>
</body>
</html>
JavaScript Файл
$(document).ready(function() {
var cityId;
var city;
var unitsFormat = "metric";
var getWeatherInfo = function() {
$.getJSON("http://api.sypexgeo.net/json")
.done(function (locationData) {
cityId = locationData.city.id;
cityName = locationData.country.iso;
$.getJSON("http://api.openweathermap.org/data/2.5/weather?", {
id: cityId,
units: unitsFormat,
APPID: '610ae7b6406da76bb34ad4bb95cc3673'
})
.done(function (weatherDate) {
$("#w-icon").attr("src", "http://openweathermap.org/img/w/" + weatherDate.weather[0].icon + ".png");
$("#temp").text(Math.round(weatherDate.main.temp) + "°C");
$("#city").text(weatherDate.name + ",");
$("#country").text(cityName);
$("#description").text(weatherDate.weather[0].description);
});
});
}
getWeatherInfo();
});
Возможный дубликат [Обнаружение неопределенного свойства объекта] (http://stackoverflow.com/questions/27509/detecting-an-undefined-object-property) – cnorthfield
Вы уверены 'weatherDate.weather [0] .description'? Если вы используете 'console.log (weatherDate),' что он показывает? –
Вы использовали отладчик (или даже консольный журнал), чтобы убедиться, что 'weatherDate' содержит значения, которые вы * думаете * он держит? Вы должны убедиться, что вы публикуете фактическое значение, возвращаемое вызовом ajax. Вы * код * может быть прав, но ваши * данные * могут быть неправильными. –