var numShown = 5; // Initial rows shown & index var numMore = 5; // Increment
var $table = $('table.hidden_rows').find('tbody'); // tbody containing all the rows var numRows = $table.find('tr').length; // Total # rows
$(function () {
// Hide rows and add clickable div $table.find('tr:gt(' + (numShown - 1) + ')').hide().end() .after('<tbody id="more"><tr><td colspan="' + $table.find('tr:first td').length + '"><div>Show <span>' + numMore + '</span> More</div</tbody></td></tr>'); $('#more').click(function() { numShown = numShown + numMore; // no more "show more" if done if (numShown >= numRows) { $('#more').remove(); } // change rows remaining if less than increment if (numRows - numShown < numMore) { $('#more span').html(numRows - numShown); } $table.find('tr:lt(' + numShown + ')').show(); }); $('#all').click(function() { numShown = numRows; // no more "show more" if done if (numShown >= numRows) { $('#all').remove(); } $table.find('tr:lt(' + numShown + ')').show(); });
});