#javascript #async-await #es6-promise
Вопрос:
У меня есть одна функция, в которой я получаю данные из API и анализирую их в json.
Во второй функции я пытаюсь вставить данные в элемент DOM.
В чем проблема, пожалуйста, и как мы правильно передаем эти данные?
Функция Firt:
// GET PUBLIC IP const getIp = async () =gt; { const reqIp = await fetch("https://ipinfo.io/json?token=xxx") return reqIp.json() }
Вторая функция:
document.addEventListener("DOMContentLoaded", async () =gt; { const dataIp = await getIp() let ipAdress = document.querySelectorAll('.ip p') ipAdress.innerHTML = dataIp.ip }) getIp()
дом:
lt;div class="ip"gt; lt;h5gt;Your IP Adress:lt;/h5gt; lt;pgt;lt;/pgt; lt;/divgt;
Маркер в порядке, данные правильно отображаются в консоли.
Комментарии:
1. Попробуй
querySelector
вместоquerySelectorAll
этого .querySelectorAll
возвращает список узлов, который вы не можете использовать .innerHTML
querySelector
возвращает один узел.2. querySelectorAll возвращает список узлов
Ответ №1:
О, слишком много редбулла и слишком мало сна.
Большое вам спасибо, ребята.
Как они писали в комментариях, проблема была в селекторе.
document.addEventListener("DOMContentLoaded", async () =gt; { const dataIp = await getIp() let ipAdress = document.querySelector('.ip p') ipAdress.innerHTML = dataIp.ip }) getIp()
Вот как это работает без проблем