Предполагая, что вы хотите скрыть все строки между заголовками при щелчке строки в этом диапазоне:
$('table tr.row').click( function() {
$(this).hide();
$(this).prevAll('tr').each( function() {
if ($(this).hasClass('header')) {
return false;
}
$(this).hide();
});
$(this).nextAll('tr').each( function() {
if ($(this).hasClass('header')) {
return false;
}
$(this).hide();
});
});
Итерирует по предыдущим / следующим братьям и сестрам (которые являются строками), скрывая каждую, пока не встретит другую строку с классом header
. return false
завершит каждый цикл. Протестировано в Firefox 3.
Соответствующая функция для отображения строк при нажатии на заголовок:
$('table tr.header').click( function() {
$(this).nextAll('tr').each( function() {
if ($(this).hasClass('header')) {
return false;
}
$(this).show();
});
});