#javascript #api #axios
#javascript #API #axios
Вопрос:
Я просмотрел предыдущие вопросы, заданные на этом форуме, и не нашел ничего, что имело бы отношение к этой конкретной ситуации. Я пытаюсь создать карточку пользователя из данных, которые я извлекаю из Github. Когда я пытаюсь добавить первый дочерний div к родительскому div, который существует в HTML, мой код выдает следующую ошибку «TypeError: не удалось выполнить ‘appendChild’ на’Node’: параметр 1 не имеет типа’Node'». Проблема в том, что это определенно узел. Вот мой код.
//Axios call
const info = axios.get(url).then(({ data }) => createCard(data));
function createCard(gitHubData) {
const cards = document.querySelector(".cards");
//Creating the elements for the cards
const card = document.createElement("div").classList.add("card");
var img = document.createElement("img");
const info = document.createElement("div").classList.add("card-info");
var name = document.createElement("h3").classList.add("name");
var username = document.createElement("p").classList.add("username");
var location = document.createElement("p");
var profile = document.createElement("p");
var followers = document.createElement("p");
var following = document.createElement("p");
var bio = document.createElement("p");
//Creating the nested layout of our elements
cards.appendChild(card); //code fails here
card.appendChild(img);
card.appendChild(info);
info.appendChild(name);
info.appendChild(username);
info.appendChild(location);
info.appendChild(profile);
info.appendChild(followers);
info.appendChild(following);
info.appendChild(bio);
//Assigning the cards to info collected from axios
img.src = gitHubData.avatar_url;
console.log(img.src);
name = gitHubData.name; //If I use .innerHTML or .textContent returns
//undefined
console.log(name);
username = gitHubData.login;
location = gitHubData.location;
profile = `Profile: ${gitHubData.html_url}`;
followers = gitHubData.followers;
following = gitHubData.following;
bio = gitHubData.bio;
return cards;
}
Комментарии:
1. вы подтвердили, что значение
const cards = document.querySelector(".cards");
равно нулю или нет? если оно равно null, вам нужно его обработать2. Вы пытались добавить дочерний элемент самого низкого уровня в cards?
3. Да, cards является div и имеет класс header
Ответ №1:
Я до сих пор не уверен, почему мой код не удался в первую очередь, но я выключил компьютер на ночь и попробовал еще раз утром. Правильный код (который я безуспешно пробовал раньше, был следующим:
name.textContent = gitHubData.name;
username.textContent = gitHubData.login;
location.textContent = gitHubData.location;
profile.textContent = `Profile: ${gitHubData.html_url}`;
followers.textContent = gitHubData.followers;
following.textContent = gitHubData.following;
bio.textContent = gitHubData.bio;