Tell us what’s happening:
I am facing issue in using removeChild, till now my program is working well but I am facing issue to remove childElements from previous condition.
Either I face a logical error or scope error, please guide me.
Your code so far
<!-- file: index.html -->
/* file: script.js */
const footballTeam = {
team: "Champs",
year: 2002,
headCoach: "Bill",
players: [
{
name: "Aakash",
position: "forward",
isCaptain: true
},
{
name: "Ronaldo",
position: "midfielder",
isCaptain: false
},
{
name: "Messi",
position: "defender",
isCaptain: false
},
{
name: "Neymar",
position: "goalkeeper",
isCaptain: false
}
]
};
let team = document.querySelector('#team');
let year = document.querySelector('#year');
let headCoach = document.querySelector('#head-coach');
let cards = document.querySelector('#player-cards');
let players = document.querySelector('#players');
team.innerHTML = footballTeam.team;
year.textContent = footballTeam.year;
headCoach.textContent = footballTeam.headCoach;
function displayInfo() {
if(players.value === "all") {
for(let i = 0; i < footballTeam.players.length; i++) {
function captain() {
return footballTeam.players[i].isCaptain ? "(Captain)" : ""
};
let card = document.createElement('div');
card.setAttribute("class", "player-card");
card.innerHTML = `<h2>${captain()} ${footballTeam.players[i].name}</h2><br><p>Position: ${footballTeam.players[i].position}`;
cards.appendChild(card);
}
}
else if(players.value === "forward") {
for(let i = 0; i < footballTeam.players.length; i++) {
function captain() {
return footballTeam.players[i].isCaptain ? "(Captain)" : ""
};
if(footballTeam.players[i].position === "forward") {
let card = document.createElement('div');
card.setAttribute("class", "player-card");
card.innerHTML = `<h2>${captain()} ${footballTeam.players[i].name}</h2><br><p>Position: ${footballTeam.players[i].position}`;
cards.appendChild(card);
}
}
}
else if(players.value === "midfielder") {
for(let i = 0; i < footballTeam.players.length; i++) {
function captain() {
return footballTeam.players[i].isCaptain ? "(Captain)" : ""
};
if(footballTeam.players[i].position === "midfielder") {
let card = document.createElement('div');
card.setAttribute("class", "player-card");
card.innerHTML = `<h2>${captain()} ${footballTeam.players[i].name}</h2><br><p>Position: ${footballTeam.players[i].position}`;
cards.appendChild(card);
}
}
}
else if(players.value === "defender") {
for(let i = 0; i < footballTeam.players.length; i++) {
function captain() {
return footballTeam.players[i].isCaptain ? "(Captain)" : ""
};
if(footballTeam.players[i].position === "defender") {
let card = document.createElement('div');
card.setAttribute("class", "player-card");
card.innerHTML = `<h2>${captain()} ${footballTeam.players[i].name}</h2><br><p>Position: ${footballTeam.players[i].position}`;
cards.appendChild(card);
}
}
}
else if(players.value === "goalkeeper") {
for(let i = 0; i < footballTeam.players.length; i++) {
function captain() {
return footballTeam.players[i].isCaptain ? "(Captain)" : ""
};
if(footballTeam.players[i].position === "goalkeeper") {
let card = document.createElement('div');
card.setAttribute("class", "player-card");
card.innerHTML = `<h2>${captain()} ${footballTeam.players[i].name}</h2><br><p>Position: ${footballTeam.players[i].position}`;
cards.appendChild(card);
}
}
}
};
displayInfo();
players.addEventListener("change", () => {
displayInfo();
})
/* file: styles.css */
Your browser information:
User Agent is: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/135.0.0.0 Safari/537.36
Challenge Information:
Build a Set of Football Team Cards - Build a Set of Football Team Cards