2013-03-13 4 views
1

Я пытаюсь изменить css последнего дочернего элемента группы элементов, если последний дочерний элемент имеет определенный класс.Поиск последнего дочернего элемента каждого элемента

Например

<div class="box"> 
<div class="entry"></div> 
<div class="entry"></div> 
<div class="divider"></div> 
<div class="entry"></div> 
<div class="entry"></div> 
</div> 

<div class="box"> 
<div class="entry"></div> 
<div class="entry"></div> 
<div class="entry"></div> 
<div class="entry"></div> 
<div class="divider"></div> 
</div> 

<div class="box"> 
<div class="entry"></div> 
<div class="entry"></div> 
<div class="divider"></div> 
<div class="entry"></div> 
<div class="entry"></div> 
</div> 

Я только хочу, чтобы изменить CSS класса "divider" для второго блока записей, потому что это последний ребенок. Это то, что я получил до сих пор. Похоже, что это будет работать, но, увы, это не так:

$(".entry").each(function() { 
    if($(this).is('last-child')) { 
    if($(this).hasClass("divider")) { 
      $(this).css("border-top-color", "green"); 
    } 
    } 
}); 
+1

Вы ищете класс 'calendarEntryDivider', но ни один из ваших divs не имеет этого класса. Возможная опечатка? Я предполагаю, что вы хотите заменить «calendarEntryDivider» на «divider». –

+0

Да. Починил это. Спасибо –

ответ

3

Это кажется вам просто нужно это:

$('.divider:last-child').css(...); 

т.е. изменить CSS каждого .divider, который является last-child его родителя.

Нет необходимости в .each, поскольку функция .css неявно действует на каждый соответствующий элемент.

+0

Хе-хе, идентичный код, то же время! – Dave

+0

@ Давай, да, но мое объяснение лучше ;-) – Alnitak

+0

awww :(true ... – Dave

2

Просто используйте :last-child селектор:

$('.divider:last-child').css('border-top-color','green') 
1

Я думаю, что у вас нет двоеточия в селекторе последнего ребенка, попробуйте изменить его на :last-child.

+0

это должен быть комментарий, а не ответ – Alnitak

+0

Он указывает на проблему в коде, поэтому я поставил его как ответ – andri

+0

I написал, что до того, как вы изменили свой ответ - отсутствующий _semi_colon редко является фатальной ошибкой в ​​JS. – Alnitak

Смежные вопросы