Как применить одинаковый class к 5 элементам массива js?
Я хочу применить одинаковый class к 5 элементам массива но применяться только к 1 который стоит первым
(контент массив и информацией)
var CATALOG = [
{
id: "id1",
name: "Harry Potter",
house: "House: Gryffindor",
img: "http://hp-api.herokuapp.com/images/harry.jpg",
},
{
id: "id2",
name: "Hermione Granger",
house: "House: Gryffindor",
img: "http://hp-api.herokuapp.com/images/hermione.jpeg",
},
{
id: "id3",
name: "Ron Weasley",
house: "House: Gryffindor",
img: "http://hp-api.herokuapp.com/images/ron.jpg",
},
{
id: "id4",
name: "Draco Malfoy",
house: "House: Slytherin",
img: "http://hp-api.herokuapp.com/images/draco.jpg",
},
{
id: "id5",
name: "Cho Chang",
house: "House: Ravenclaw",
img: "http://hp-api.herokuapp.com/images/cho.jpg",
},
{
id: "id6",
name: "Cedric Diggory",
house: "House: Hufflepuff",
img: "http://hp-api.herokuapp.com/images/cedric.png",
},
];
(вывод в html)
var htmlCatalog = "";
CATALOG.forEach(({name, house, img, id}) => {
htmlCatalog += `
<div id="box" class="container">
<div class="text">
<h3>${name}</h3>
<h4>${house}</h4>
</div>
<img src="${img}">
</div>
`;
var html = `
<div class="wrapper">
<div class="block">
<div class="center">
<span>search</span>
<p>search and do not lose</p>
</div>
<div class="search1">
<div class="search2">
<input placeholder="search" class="search" type="search" id="search">
<div class="btn" id="btn"></div>
</div>
</div>
<div class="contant">
${htmlCatalog}
</div>
</div>
</div>
`;
contants.innerHTML = html;
})
(поиск по массиву {name} если есть совпадения остальные блоки принимаю class box-hid)
var box = document.querySelector("#box")
CATALOG.forEach(({name, id}) => {
btn.addEventListener("click", () => {
if(search.value !== name) {
box.classList.add("box-hide")
}
})
})
Ответы (1 шт):
Автор решения: Aziza Kasenova
→ Ссылка
Вы применяете id, который должен быть уникальным для HTML-документа. Замените
<div id="box" class="container">
на
<div id="${id}" class="container box">
т.е. задайте как имя класса и используйте через
document.querySelectorAll('.box');