我在页面上有一个项目(艺术家)列表,在此之上,我有按钮(类别)来过滤列表,我无法在我的Javascript中思考的是如何过滤一个项目,如果它位于多个类别中。
这是我的JS:
const buttons = document.querySelector("#buttons").children
const items = document.querySelector(".artists-container").children
for(let i=0; i<buttons.length; i++) {
buttons[i].addEventListener("click", function(){
for(let j=0; j<buttons.length; j++){
buttons[j].classList.remove("active")
}
this.classList.add("active")
const target = this.getAttribute("data-target")
for(let k=0; k<items.length; k++){
items[k].style.display="none"
if(items[k].getAttribute("data-discipline")==target){
items[k].style.display="block"
}
if(target=="artists"){
items[k].style.display="block"
}
}
})
}
如果它有帮助,这里也是我的HTML:
<section class="artists">
<div class="filter-btn">
<ul id="buttons">
<li class="active" data-target="artists">All</li>
<li data-target="category1">Category 1</li>
<li data-target="category2">Category 2</li>
<li data-target="category3">Category 2</li>
</ul>
</div>
<div class="artists-container">
<article data-discipline="category1 category2">
<a href="#">
<div class="artist-details">
<p>Category 1, Category 2</p>
<h5>I appear in two categories</h5>
</div>
</a>
</article>
<article data-discipline="category3">
<a href="#">
<div class="artist-details">
<p>Category 3</p>
<h5>I appear in one category</h5>
</div>
</a>
</article>
</section>
任何帮助将不胜感激。
牛魔王的故事
SMILET
相关分类