我有一個30行的表。我想要做的是按默認顯示前5行,如果點擊「顯示5更多」,則再顯示5行。如何在每次使用jQuery時在表中顯示5個附加行?
所以默認情況下只顯示5個「Show 5 More」,然後再顯示5個,現在用戶看到10行。點擊「顯示5更多」,然後你可以看到15行。等等,第四。
我該怎麼做?有沒有這個jQuery插件?
我有一個30行的表。我想要做的是按默認顯示前5行,如果點擊「顯示5更多」,則再顯示5行。如何在每次使用jQuery時在表中顯示5個附加行?
所以默認情況下只顯示5個「Show 5 More」,然後再顯示5個,現在用戶看到10行。點擊「顯示5更多」,然後你可以看到15行。等等,第四。
我該怎麼做?有沒有這個jQuery插件?
append()
功能HTML
<table class="table">
<thead>
<tr>
<th>#</th>
<th>First Name</th>
<th>Last Name</th>
<th>Username</th>
</tr>
</thead>
<tbody>
<tr class="template">
<td class="num">5</td>
<td>Larry</td>
<td>the Bird</td>
<td>@twitter</td>
</tr>
<tr>
<td>1</td>
<td>Mark</td>
<td>Otto</td>
<td>@mdo</td>
</tr>
<tr>
<td>2</td>
<td>Jacob</td>
<td>Thornton</td>
<td>@fat</td>
</tr>
<tr>
<td>3</td>
<td>Larry</td>
<td>the Bird</td>
<td>@twitter</td>
</tr>
<tr>
<td>4</td>
<td>Larry</td>
<td>the Bird</td>
<td>@twitter</td>
</tr>
<tr>
<td>5</td>
<td>Larry</td>
<td>the Bird</td>
<td>@twitter</td>
</tr>
</tbody>
</table>
<button class="btn">Show more</button>
的Javascript
// number of rows seen by default
var n = 5;
// click on the "Show more" button
$(".btn").on("click", function() {
// how many rows to add?
var howMany = 1;
// call ajax, if you use it and the following
// code will go to ajax callback
// add rows
for (var i = 0; i < howMany; ++i) {
appendItem();
}
});
function appendItem() {
// clone item
var item = $(".template").clone().removeClass("template");
// set its data
item.find(".num").text(++n);
// append it
$("tbody").append(item);
}
fadeIn()/show()
功能HTML
<table class="table">
<thead>
<tr>
<th>#</th>
<th>First Name</th>
<th>Last Name</th>
<th>Username</th>
</tr>
</thead>
<tbody>
<tr class="template">
<td class="num">5</td>
<td>Larry</td>
<td>the Bird</td>
<td>@twitter</td>
</tr>
<!-- THE HTML IS GENERATED BY JQUERY -->
</tbody>
</table>
<button class="btn">Show more</button>
的Javascript
// ================= GENERATE DUMMY TABLE
var n = 0;
var TOTAL_ROWS = 30;
for (var i = 0; i < TOTAL_ROWS; ++i) {
appendItem();
}
function appendItem() {
var item = $(".template").clone().removeClass("template");
item.find(".num").text(++n);
item.addClass("table-item");
item.hide();
$("tbody").append(item);
}
// ================= SHOW ONLY FEW ROWS BY DEFAULT
var howMany = 5;
showDefaultRows();
function showDefaultRows() {
var complete = 0;
$(".table-item").each(function() {
if (++complete > howMany) {
return;
}
$(this).show();
});
}
// ================= ON CLICK
$(".btn").on("click", function() {
var complete = 0;
var showMore = 5;
howMany += showMore;
$(".table-item").each(function() {
if (++complete > howMany) {
return;
}
$(this).fadeIn();
});
});
不要相信他從AJAX加載任何東西,好像所有的行都已經存在。 –
@AndrewPeacock我已經更新了我的答案。 –
@AndrewPeacock謝謝你的回答。您的代碼正在附加行。我想展現更多。所有記錄都在頁面打開後預先加載,但我不想在默認情況下顯示所有記錄,因爲用戶不需要看到通過5,但在某些原因中他們可能想要看到通過5,所以我有此按鈕如果他們想看更多的話,更多地展示他們。所以我需要顯示/隱藏不附加。我怎樣才能做到這一點?謝謝 – Mike
您可以使用數據表插件。它有分頁。 – user1
我試過使用datatables插件,但它不支持colspan,在這種情況下,我需要「colspan」 – Mike