The issue you're facing is likely due to how you're updating the HTML elements. When you use document.querySelector, it only selects the first matching element in the DOM, which is why only the first forecast data (e.g., 21:00) is being displayed. You must empty the container before adding new forecast items to avoid duplicates, and you must also use a loop to create and append forecast items for each 3-hour interval instead of using document.querySelector to update the items within the dynamically created forecastItem.