Как отображать информацию в DOM
Одной из самых сложных для меня концепций, когда я только начал программировать, было то, как отображать информацию в DOM. Я мог наблюдать за тем, как это делают люди, и это имело смысл, когда я наблюдал за ними; но как только пришло время рисовать мой пустой файл index.js, мой разум был пуст. Как только я начал задавать себе больше вопросов «что и почему», концепция начала меняться. Вот как работал мой мыслительный процесс:
Шаг 1
Что: получение ваших данных.
Почему? Вам нужно с чем-то работать. Без данных далеко не уедешь.
Не забудьте запустить свой json-сервер, используя:
json-server --watch db.json
document.addEventListener('DOMContentLoaded', function() { fetch('http://localhost:3000/zodiacs') .then(res => res.json()) .then(zodiacs => renderZodiacs(zodiacs))
Шаг 2
Что: отправлять данные в функцию.
Почему? Теперь, когда у вас есть данные, вам нужно что-то с ними сделать.
Начнем с простой функции renderZodiacs. Подумайте, что вы хотите, чтобы эта функция делала:
function renderZodiacs(zodiacs){ }
Шаг 3
Что: Определите переменные ваши переменные.
Почему: функция — это круто и все такое, но без инструкций по функциям она бесполезна. Определите переменные, которые выбирают правильные элементы HTML, соответствующие тому, куда вы хотите направить содержимое.
function renderZodiacs(zodiacs){ const zodiacImage = document.querySelector('#zodiac-image') const zodiacName = document.querySelector('#zodiac-name') const zodiacElement = document.querySelector('#zodiac-element') }
Шаг 4
Что: применить контент
Зачем: Теперь, когда мы указали переменным правильный HTML, нам нужно применить содержимое к DOM, указав переменным, где искать содержимое. Для изображений мы будем использовать .src
, а для текстовой информации — .textContent
. Сошлитесь на файл db.json, чтобы получить данные.
function renderZodiacs(zodiacs){ const zodiacImage = document.querySelector('#zodiac-image') zodiacImage.src = zodiacs.image const zodiacName = document.querySelector('#zodiac-name') zodiacName.textContent = zodiacs.name const zodiacElement = document.querySelector('#zodiac-element') zodiacElement.textContent = zodiacs.Element }
На этом этапе вы должны увидеть свой контент, отображаемый в DOM, если нет, обязательно используйте console.log(), чтобы увидеть, где ваша ошибка.