Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 11.12.2019, 20:52
Новичок на форуме
Отправить личное сообщение для Tery_lida Посмотреть профиль Найти все сообщения от Tery_lida
 
Регистрация: 11.12.2019
Сообщений: 4

Заменить элементы forecast weather
Здравствуйте. Подскажите пожалуйста насчет такого вопроса.
разрабатываю приложение погоды. Я использую вот эти иконки погоды
Приложение должно запускаться и сразу показывать погоду в течение 24 часов и иконку погоды текущего расположение пользователя. С этим пунктом вопросов нет.
Использую такую функцию
function forecastcity(city) {
  fetch(`https://api.openweathermap.org/data/2.5/forecast?q=${city}&APPID=`)
    .then((response) => response.json())
    .then((data) => {
      data.list.slice(0, 8).map((day, i) => {
        const div = document.createElement('div');
        const h2 = document.createElement('h2');
        const p1 = document.createElement('p');
        const icon = document.createElement('i');
        const p2 = document.createElement('p');
        icon.className = icons(day.weather[0].icon);
        icon.id = 'forecasticon';
        div.appendChild(p2);
        div.appendChild(h2);
        div.appendChild(p1);
        div.appendChild(icon);
        p1.innerHTML = day.weather[0].description.toLowerCase().replace(/\b[a-z]/g, (letter) => letter.toUpperCase());
        forecastTemp.push(day.main.temp);
        h2.innerHTML = covertF(day.main.temp);
        h2.id = i;
        div.className = 'days';
        const final = document.getElementById('forecast').appendChild(div);
        p2.innerHTML = timeConverter(day.dt);
        return final;
      });
    });
}



Данные forecast отображаются отлично. Дальше мне надо отобразить погоду в городе, который вводится через поле поиска. И вот тут начинаются проблемы.
Данные дублируются. Т.е. к действующим 8ми элементам добавляется еще 8 новых. Подскажите пожалуйста, как заменить предыдущие элементы погоды forecast при каждом поиске города?
Изображения:
Тип файла: jpg 1.jpg (82.2 Кб, 0 просмотров)
Ответить с цитированием
  #2 (permalink)  
Старый 11.12.2019, 22:00
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,109

Сообщение от Tery_lida
const final = document.getElementById('forecast').appendChild(di v);
document.getElementById('forecast').innerHTML = div.innerHTML
Ответить с цитированием
  #3 (permalink)  
Старый 12.12.2019, 07:07
Новичок на форуме
Отправить личное сообщение для Tery_lida Посмотреть профиль Найти все сообщения от Tery_lida
 
Регистрация: 11.12.2019
Сообщений: 4

Сообщение от рони Посмотреть сообщение
document.getElementById('forecast').innerHTML = div.innerHTML
Спасибо большое, но к сожалению не работает
Ответить с цитированием
  #4 (permalink)  
Старый 12.12.2019, 08:21
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,109

Tery_lida,
тогда так
document.getElementById('forecast').innerHTML = "";
const final = document.getElementById('forecast').appendChild(div);
Ответить с цитированием
  #5 (permalink)  
Старый 12.12.2019, 08:59
Новичок на форуме
Отправить личное сообщение для Tery_lida Посмотреть профиль Найти все сообщения от Tery_lida
 
Регистрация: 11.12.2019
Сообщений: 4

Спасибо.
Но вместо 8ми элементов отображается один.
Изображения:
Тип файла: jpg 2.jpg (47.0 Кб, 1 просмотров)
Тип файла: jpg 3.jpg (14.0 Кб, 0 просмотров)
Ответить с цитированием
  #6 (permalink)  
Старый 12.12.2019, 09:04
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,109

Сообщение от рони
document.getElementById('forecast').innerHTML = "";
перенесите в начало строки 5
Ответить с цитированием
  #7 (permalink)  
Старый 12.12.2019, 09:21
Новичок на форуме
Отправить личное сообщение для Tery_lida Посмотреть профиль Найти все сообщения от Tery_lida
 
Регистрация: 11.12.2019
Сообщений: 4

Спасибо огромное! Теперь все работает!
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Заменить элементы при клике SolomonRei Элементы интерфейса 4 23.11.2018 22:37
Как заменить элементы массива? webxmm Общие вопросы Javascript 8 23.06.2017 16:06
Можно ли заменить путь к папке на элементы массива? wolf329 Общие вопросы Javascript 7 28.02.2017 20:47
Как вернуть div и все вложенные в него элементы в первоначальное состояние? lucky89 Общие вопросы Javascript 17 26.02.2015 18:41
Заменить все отрицательные элементы Sergey410 Общие вопросы Javascript 2 27.11.2013 23:28