2015-01-04 4 views
0
<tr class="main"></tr> 
<tr class="emails-details"> 
    <button>some button</button> 
</tr> 
<tr class="main"></tr> 
<tr class="emails-details"> 
    <button>some button</button> 
</tr> 
<tr class="main"></tr> 
<tr class="emails-details"> 
    <button>some button</button> 
</tr> 

Я хочу, чтобы выбрать предыдущий tr.main после нажатия кнопки, но не могу понять, как добраться до нужного предыдущего elemetn с помощью .prev(), .prevAll(), или .prevUntil()Выбор вторичного предшествующего элемента

$(function() { 
    $('.dropdown-image').click(function() { 
      $(this).parent().parent().parent().prev($("tr:nth-of-type(1)")).children().css('border-bottom-color', '#a3d0dd'); 
      $(this).parent().parent().parent().prevUntil('.main').children().css('border-bottom-color', '#a3d0dd'); 
    }); 
}); 

Iv получил первый ряд отсортирован, потому что он не имеет ряд tr.emails-detials после него, но мне нужно, чтобы изменить границы дна-цвет строки выше, как показано ниже синий граница отсутствует в выбранной строке.

enter image description here

+1

'$ (this) .closest ('tr'). Prev ('. Main')' – adeneo

+1

Всякий раз, когда вы выполняете '.parent(). Parent(). Parent() ....' you ' повторять что-то не так! – adeneo

+0

Это должно быть довольно легко решить, но я просто хочу задать вопрос очень быстро. Можете ли вы изменить HTML-код разметки? Было бы разумнее, чтобы детали электронной почты были частью встроенной таблицы в ваших отдельных строках. –

ответ

0

Ну я решил свою проблему с помощью

$(this).parent().parent().parent().prev('tr').prev('.main').children().css('border-bottom-color', '#a3d0dd'); 

я знаю, кто будет комментировать о .parent(). Родитель() и .prev(). Предыдущая() и т.д., но проблема решена на данный момент.

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