Если вы можете дать родительским строкам класс (например, parent
), то вы можете сделать это очень универсальным с помощью .nextUntil()
:
$("tr.parent").click(function() {
$(this).nextUntil(".parent").toggle();
});
Это просто выбирает все элементы <tr>
, которые не являются .parent
после строки, по которой щелкают, пока не найдет тот, который есть. Это позволяет вам использовать любое количество промежуточных строк, не являющихся родителями, и правильно переключать их все. Если у вас длинная таблица с большим количеством строк, используйте .delegate()
аналогичным образом:
$("#tableID").delegate("tr.parent", "click", function() {
$(this).nextUntil(".parent").toggle();
});
Это ведет себя так же, но к <table>
подключается один обработчик событий (а не по одному на каждого родителя <tr>
).