2015-10-14 1 views
-3

Итак, у меня есть несколько разделов продукта, которые имеют одинаковую структуру и те же классы.Если изображение имеет определенный тег ALT, скройте определенный div, который находится под одним и тем же родительским div, как изображение

<div class="product"> 
    <div class="product_image"> 
    <div class="image"> 
     <img src="http://www.placehold.it/200x200" alt="Puppy"> 
    </div> 
    </div> 
    <div class="image_description"> 
    Image Description 
    </div> 
</div> 

<div class="product"> 
    <div class="product_image"> 
    <div class="image"> 
     <img src="http://www.placehold.it/200x200" alt="Kitten"> 
    </div> 
    </div> 
    <div class="image_description"> 
    Image Description 
    </div> 
</div> 

Я хочу, чтобы скрыть DIV с классом «image_description» только в том случае, когда изображение под DIV продукта есть альт тегов Puppy.

+3

Вы сделали любую попытку решить эту проблему самостоятельно? Если да, добавьте свой код к вопросу. –

+0

Почему вы ненавидите щенков? Кроме того, что более серьезно, значение атрибута «alt» будет в точности равным «Puppy» или просто начинается с «Puppy»? Будут ли они всегда капитализироваться именно таким образом? –

+0

Дэвид, я забыл упомянуть об этом, но в нем должно быть слово Puppy. Я использовал [alt * = "Puppy"] для этого :) – izulito

ответ

1

Вы можете найти все .product элемент, содержащий элементы с alt=Puppy. а затем найти .image_description элемент в нем и скрывать:

$('.product:has([alt=Puppy])').find('.image_description').hide(); 

Working Demo

+0

Спасибо. Это было именно то, что мне нужно. – izulito

0

Попробуйте это:

$('img').each(function(){ 
    var element = $(this); 
    var a = element.attr('alt'); 
    if(a == 'Puppy'){ 
     element.parents('.product').find('.image_description').hide(); 
    } 
}); 
Смежные вопросы