У меня есть этот код, но он не работает правильно.
Моя проблема в том, что эти фильтры работают так, как мне нужно отдельно.Фильтрация должна работать на обоих фильтрах.Как заставить их работать вместе?Как это исправить, что бы они работали вместе?
let productBox = document.querySelectorAll('.product');
let selectCategory = document.querySelector('#select-category');
let selectPrice = document.querySelector('#select-price');
selectCategory.addEventListener('change', (evt) => {
let selectVal = evt.currentTarget.value;
Array.prototype.forEach.call(productBox, prodItem => {
if((selectVal !== 'all') && (prodItem.dataset.category !== selectVal)) {
prodItem.style.display = 'none'
} else {
prodItem.style.display = 'block'
}
})
});
selectPrice.addEventListener('change', (evt) => {
let selectVal = evt.currentTarget.value;
Array.prototype.forEach.call(productBox, prodItem => {
if((selectVal === '0') || (+prodItem.dataset.price <= +selectVal)) {
prodItem.style.display = 'block'
} else {
prodItem.style.display = 'none'
}
})
})
.product {
border: 1px solid;
padding: 2px;
margin: .5rem;
}
<select id="select-category">
<option value="all">All</option>
<option value="dinner">Dinner</option>
<option value="first meal">First meal</option>
<option value="garnish">Garnish</option>
</select>
<select id="select-price">
<option value="all">All</option>
<option value="30">Up to 30 dollars</option>
<option value="50">Up to 50 dollars</option>
<option value="100">Up to 100 dollars</option>
</select>
<div data-category="dinner" data-price="30" class="product">Dinner</div>
<div data-category="first meal" data-price="50" class="product">First meal</div>
<div data-category="dinner" data-price="45" class="product">Dinner2</div>
<div data-category="first meal" data-price="55" class="product">First meal2</div>
<div data-category="garnish" data-price="100" class="product">Garnish</div>
<div data-category="garnish" data-price="120" class="product">Garnish2</div>