У меня есть список таких элементов:
<div class="wine"> <H1>Title</H1> <div class="promotion"></div></div>
<div class="wine"> <H1>Title</H1> </div></div>
<div class="wine"> <H1>Title</H1> </div></div>
<div class="wine"> <H1>Title</H1> <div class="promotion"></div></div>
Когда в винный дайвер существует div.promotion, я хочу дать классу вина красную границу. Но только для этого элемента, конечно, не для всех классов вина.
У кого-нибудь есть идея?
Вы можете использовать метод.has() на .wine
чтобы проверить, есть ли у него .promotion
$('.wine').has('.promotion').css('border', 'red 1px solid');
Вы можете использовать селектор .parent()
, чтобы сделать это следующим образом:
$('.promotion').parent('.wine').css('border', 'red 1px solid');
Вот скрипка, показывающая это: http://jsfiddle.net/33Ugf/
Обратите внимание, что вам нужно удалить лишний закрывающий </div>
после второго и третьего <div class="wine">
чтобы сделать вашу HTML-разметку правильной.
После этого вы можете использовать .closest():
$('.promotion').closest('.wine').css('border','1px solid red');
$('.wine:has(div.promotion)').css('border','1px solid red')
</div>
в ваших средних двух</div>
.