【发布时间】:2021-02-24 13:03:32
【问题描述】:
<div class="col-lg-3 col-md-6 shopItem Yellow XL Puma">
<div class="products-item ">
<div class="product-img">
<img class='img-fluid' src="img/kamizelka2.jpg" alt="kamizelka zółta">
<div class="overlay">
<a href="" class="btn mybtn1">Kup teraz</a>
</div>
</div>
<div class="product-content">
<div class="product-price">
<span class="new-price">11zł</span>
<span class="old-price">23zł</span>
</div>
<h5 class='product-name'>Kamizelka Dwa</h5>
</div>
</div>
</div>
我有一个很难解释的问题。 我试图为商店物品制作这个简单的过滤器。 目前这个功能只接受最后一个选择的选项(我的意思是我找不到绿色 xl 阿迪达斯项目,但只有其中一个选项,当我使用分配的选择元素时它会改变。 关于如何解决它的任何想法?
function filterAction () {
const types = document.querySelectorAll('.form-control');
const storeProducts = document.querySelectorAll('.shopItem');
types.forEach((type)=>{
type.addEventListener('change',(e)=>{
storeProducts.forEach((product)=> {
product.style.display='none';
if(type.value =="All" ) {
product.style.display ="block"
} else {
if (product.classList.contains(type.value)) {
product.style.display = 'block'
} else {
product.style.display = "none"
}
}
})
})
})
}
filterAction();
<div class="search-item d-flex text-center">
<div class="form-group col-sm-4">
<label for="exampleFormControlSelect1">Color</label>
<select class="form-control" id="colorLabel">
<option data-filter="all">All</option>
<option data-filter="yellow">Yellow</option>
<option data-filter="green">Green</option>
<option data-filter="orange">Orange</option>
</select>
</div>
<div class="form-group col-sm-4">
<label for="exampleFormControlSelect1">Size</label>
<select class="form-control" id="exampleFormControlSelect1">
<option data-filter="all">All</option>
<option data-filter="s">S</option>
<option data-filter="m">M</option>
<option data-filter="l">L</option>
<option data-filter="xl">XL</option>
</select>
</div>
<div class="form-group col-sm-4">
<label for="exampleFormControlSelect1">Brand</label>
<select class="form-control" id="exampleFormControlSelect1">
<option data-filter="all">All</option>
<option class='options' data-filter="adidas">Adidas</option>
<option class='options' data-filter="puma">Puma</option>
<option class='options' data-filter="gucci">Gucci</option>
</select>
</div>
</div>
<!-- begin snippet: js hide: false console: true babel: false -->
【问题讨论】:
-
拜托,你能把代码分享给
.shopItemitems吗? -
刚刚分享 :) @Lucius
标签: javascript filter shop