Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Перебрать блоки и если в каком то есть определенный класс,скрыть класс (https://javascript.ru/forum/events/69689-perebrat-bloki-i-esli-v-kakom-est-opredelennyjj-klass-skryt-klass.html)

INSIDER73 12.07.2017 12:00

Перебрать блоки и если в каком то есть определенный класс,скрыть класс
 
Есть такая структура
<div class="products-view-block-custom">
	<div class="block">
		<div class="price">
            <div class="price-current cs-t-1">
	            <div class="price-number"> 20 000</div> 
	            <div class="price-currency"> руб.</div>
        	</div>
        </div>
	</div>
	<div class="block_payment_custom-cc">
            <a href="">заказ</a>
    </div>
</div>

<div class="products-view-block-custom">
	<div class="block">
		<div class="price">
            <div class="price-current cs-t-1">
	            <div class="price-number"> 20 000</div> 
	            <div class="price-currency"> руб.</div>
        	</div>
        </div>
	</div>
	<div class="block_payment_custom-cc">
            <a href="">заказ</a>
    </div>
</div>

<div class="products-view-block-custom">
	<div class="block">
		<div class="price">
		     <div class="price-unknown">Свяжитесь с нами насчет цены</div>
        </div>
	</div>
	<div class="block_payment_custom-cc">
            <a href="">заказ</a>
    </div>
</div>


Нужно перебрать каждый блок и если внутри блока price есть блок price-unknown,то у родительского блока нужно скрыть блок block_payment_custom-cc

По циклу прохожусь ,но как вычислить что у блока есть или нет price-unknown не понимаю

Manyasha 12.07.2017 12:35

INSIDER73,
Здравствуйте, так пойдет?
<script>
window.addEventListener("load", function() {
	[].forEach.call(document.querySelectorAll(".products-view-block-custom"), function(e){
		if (e.querySelector(".price .price-unknown")){
			e.querySelector(".block_payment_custom-cc").style.display = "none";
		}
	});
})
</script>
<div class="products-view-block-custom">
    <div class="block">
        <div class="price">
            <div class="price-current cs-t-1">
                <div class="price-number"> 20 000</div>
                <div class="price-currency"> руб.</div>
            </div>
        </div>
    </div>
    <div class="block_payment_custom-cc">
            <a href="">заказ</a>
    </div>
</div>
 
<div class="products-view-block-custom">
    <div class="block">
        <div class="price">
            <div class="price-current cs-t-1">
                <div class="price-number"> 20 000</div>
                <div class="price-currency"> руб.</div>
            </div>
        </div>
    </div>
    <div class="block_payment_custom-cc">
            <a href="">заказ</a>
    </div>
</div>
 
<div class="products-view-block-custom">
    <div class="block">
        <div class="price">
             <div class="price-unknown">Свяжитесь с нами насчет цены</div>
        </div>
    </div>
    <div class="block_payment_custom-cc">
            <a href="">заказ</a>
    </div>
</div>

laimas 12.07.2017 12:35

$(function() {
    $('.block_payment_custom-cc').css('display', function() {
        return $(this).prev().find('.price-unknown').length ? 'none' : 'block'
    })
});

INSIDER73 12.07.2017 12:49

Спасибо,работает


Часовой пояс GMT +3, время: 08:11.