Скрыть слои div через интервал
Имеется блок, который нужно скрывать в категории товаров, родительский класс в каждой категории имеет свой id например product-category-999 Подскажите как скрыть содержимое класса в родительской категории например всех категорий от 1до999. Просто не хочется нумеровать все 999 значений в стиле. Скрываю я слой вот так
body.product-category-999 .block {display:none; }
<body class="product-category-999">
<div class="panel ocfilter panel-default" id="ocfilter">
<img class="block" src="/image/main/rotate.php" alt="" width="160px">
</div>
</body>
Ответы (1 шт):
Автор решения: shutdown
→ Ссылка
Можно через JS.
function hideBlocksInside(className, from, to) {
for(let i = from; i <= to; i++) {
let block = document.querySelector(className + i + " .block");
block.style.display = "none";
}
}
hideBlocksInside(".product-category-", 1, 3);
<div class="product-category-1">
<p class="block">
Hello-1
</p>
</div>
<div class="product-category-2">
<p class="block">
Hello-2
</p>
</div>
<div class="product-category-3">
<p class="block">
Hello-3
</p>
</div>
На странице должен быть только один тег body. Вот с вашей структурой, но div вместо body (для наглядности поставил задержку скрытию):
function hideBlocksInside(className, from, to) {
for(let i = from; i <= to; i++) {
let block = document.querySelector(className + i + " .block");
if(!block) continue;
block.style.display = "none";
}
}
setTimeout(hideBlocksInside, 5000, ".product-category-", 1, 999);
<div class="product-category-120">
<div class="panel ocfilter panel-default" id="ocfilter">
<img class="block" src="https://18.img.avito.st/640x480/5200844318.jpg" alt="" width="160px">
</div>
</div>
<div class="product-category-228">
<div class="panel ocfilter panel-default" id="ocfilter">
<img class="block" src="https://18.img.avito.st/640x480/5200844318.jpg" alt="" width="160px">
</div>
</div>
<div class="product-category-871">
<div class="panel ocfilter panel-default" id="ocfilter">
<img class="block" src="https://18.img.avito.st/640x480/5200844318.jpg" alt="" width="160px">
</div>
</div>