Jquery, изменить границу, если div присутствует, но только из этого элемента в списке

0

У меня есть список таких элементов:

<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, я хочу дать классу вина красную границу. Но только для этого элемента, конечно, не для всех классов вина.

У кого-нибудь есть идея?

  • 1
    У вас есть дополнительные </div> в ваших средних двух </div> .

4 ответа

0
Лучший ответ

Вы можете использовать метод.has() на .wine чтобы проверить, есть ли у него .promotion

Демо-версия

$('.wine').has('.promotion').css('border', 'red 1px solid');
2

Вы можете использовать селектор .parent(), чтобы сделать это следующим образом:

$('.promotion').parent('.wine').css('border', 'red 1px solid');

Вот скрипка, показывающая это: http://jsfiddle.net/33Ugf/

1

Обратите внимание, что вам нужно удалить лишний закрывающий </div> после второго и третьего <div class="wine"> чтобы сделать вашу HTML-разметку правильной.

После этого вы можете использовать .closest():

$('.promotion').closest('.wine').css('border','1px solid red');

Демо-версия скрипта

0
$('.wine:has(div.promotion)').css('border','1px solid red')

Пример jsFiddle

Ещё вопросы

Сообщество Overcoder
Наверх
Меню