У меня есть этот код, но он не работает правильно.
let productBox = document.querySelectorAll('.product');
let selectCategory = document.querySelector('#select-category');
let categoryVal = document.querySelectorAll('#select-category option');
selectCategory.addEventListener('change', () => {
Array.prototype.forEach.call(categoryVal, catItem => {
Array.prototype.forEach.call(productBox, prodItem => {
if((catItem.selected) && (prodItem.category ===
catItem.category)) {
prodItem.style.display = 'none'
}
})
})
})
.product {
border: 1px solid;
padding: 2px;
margin: .5rem;
}
<select id="select-category">
<option category="all">All</option>
<option category="dinner">Dinner</option>
<option category="first meal">First meal</option>
<option category="garnish">Garnish</option>
</select>
<div category="dinner" class="product">Dinner</div>
<div category="first meal" class="product">First meal</div>
<div category="garnish" class="product">Garnish</div>
Мне нужно, чтобы при выборе элемента option
display none
применялся к блокам, категория которых не совпадает.Каков наилучший способ сделать это?