Как обновлять прогноз погоды онлайн?
Коллеги, у меня есть полуготовый код на js. Мне нужно, что б определялся город в классе weather__city и для этого города автоматически обновлялась, температура воды <p class="weather__temperature">+23<sup>o</sup>C - воздух</p> (если это возможно), дата <p class="weather__date">29.05.2020</p>, и температура воздуха <p class="weather__temperature">+23<sup>o</sup>C - воздух</p> вместе с иконкой <div class="weather__icon"><i class="fas fa-sun"></i></div>.
Всё выше описанное является моей проблемой и прошу у Вас помощи! Ниже прилагаю код. Заранее благодарю за помощь!
const api = {
key: "11c85ec89d2ab590110511a07349dd25",
baseurl: "https://api.openweathermap.org/data/2.5/"
}
const weather__wrapper = document.addEventListener('DOMContentLoaded', setQuery);
var boolean = false;
function setQuery(evt) {
boolean = true;
getResults(boolean);
}
function getResults (query) {
fetch(`${api.baseurl}weather?q=${query}&units=metric&APPID=${api.key}`)
.then(weather=> {
return weather.json();
}).then(displayResults);
}
function displayResults(weather) {
console.log(weather);
let city = document.querySelector('.weather__text .weather__city');
city.innerText = `${weather.name}, ${weather.sys.counry}`;
let now = new Date();
let date = document.querySelector('.weather__text .weather__date');
date.innerText = dateBuilder(now);
}
function dateBuilder(d) {
let months = ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"];
let days = ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"];
let day = days[d.getDay()];
let date = d.getDate();
let month = months[d.getMonth()];
let year = d.getFullYear();
return `${day} ${date} ${month} ${year}`;
}
.weather__wrapper {
height: 186px;
width: 355px;
border-radius: 5px;
background-color: #e4e8ef;
padding: 24px 24px 24px 24px;
margin-left: 30px; /* убрать */
}
.weather__icon {
float: left;
margin-top: 26px;
}
.weather__icon i {
color: #fab165;
font-size: 5.938em;
}
.weather__text {
float: right;
}
.weather__city { /* Локация, на видел input */
font-weight: 400;
font-size: 1.500em;
margin-bottom: 0!important;
}
.weather__temperature {
font-weight: 800;
font-size: 1.500em;
margin-bottom: 0!important;
}
.weather__date {
font-size: 1.250em;
font-weight: 200;
margin-bottom: 0!important;
}
.slide-weather__items {
display: flex;
outline: none;
}
.slide-weather {
margin-bottom: 100px;
}
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
<link rel="stylesheet" href="css/main.css">
</head>
<body>
<div class="slide-weather">
Hello
<div class="slide-weather__items">
<div class="weather__wrapper">
<!-- weather on video -->
<div class="weather__icon"><i class="fas fa-sun"></i></div>
<div class="weather__text">
<p class="weather__city">г. Сочи</p>
<div class="weather__current-temp">
<p class="weather__temperature">+23<sup>o</sup>C - воздух</p>
</div>
<div class="weather__water">
<p class="weather__temperature">+23<sup>o</sup>C - вода</p>
</div>
<p class="weather__date">29.05.2020</p>
</div>
</div>
<div class="weather__wrapper">
<!-- weather on video -->
<div class="weather__icon"><i class="fas fa-sun"></i></div>
<div class="weather__text">
<p class="weather__city">г. Новороссийск</p>
<div class="weather__current-temp">
<p class="weather__temperature">+23<sup>o</sup>C - воздух</p>
</div>
<div class="weather__water">
<p class="weather__temperature">+23<sup>o</sup>C - вода</p>
</div>
<p class="weather__date">29.05.2020</p>
</div>
</div>
<div class="weather__wrapper">
<!-- weather on video -->
<div class="weather__icon"><i class="fas fa-sun"></i></div>
<div class="weather__text">
<p class="weather__city">г. Геленджик</p>
<div class="weather__current-temp">
<p class="weather__temperature">+23<sup>o</sup>C - воздух</p>
</div>
<div class="weather__water">
<p class="weather__temperature">+23<sup>o</sup>C - вода</p>
</div>
<p class="weather__date">29.05.2020</p>
</div>
</div>
</div>
</div>
<script src="js/jquery-3.5.1.min.js"></script>
<script src="js/weather.js"></script>
</body>
</html>