Подход Ника в порядке, но я бы, вероятно, использовал один обработчик для всей таблицы («делегирование события») через функцию delegate
, а не отдельные обработчики. на каждой кнопке, вот так:
$('#theTable').delegate("button.shownextrow", "click", function() {
$(this).closest("tr").next("tr").show();
});
Живой пример
Помимо прочего, это позволяет вам добавлять больше пар строк в таблицу (и удалять пары строк), не беспокоясь о подключении / отключении обработчиков событий для них. Имейте в виду, это требует, чтобы ничто непосредственно в иерархии между элементом button
и элементом table
не поглощало щелчков ...
Вот мой старый пример, который не использовал delegate
, только для исторических целей & mdash; вау делает delegate
упрощение кода:
$('#theTable').click(function(event) {
var button = $(event.target).closest("button.shownextrow");
if (button.length > 0) {
button.closest("tr").next("tr").show();
}
});
Живой пример