table分页html+js
时间: 2023-08-29 16:08:16 浏览: 125
html table 分页
下面是一个简单的HTML和JavaScript代码示例,用于将表格分页显示:
```html
<!DOCTYPE html>
<html>
<head>
<title>Table Pagination Demo</title>
<style>
table {
border-collapse: collapse;
width: 100%;
}
table td, table th {
border: 1px solid #ddd;
padding: 8px;
text-align: left;
}
table th {
background-color: #f2f2f2;
color: #333;
font-weight: bold;
}
.pagination {
display: inline-block;
margin-top: 20px;
}
.pagination a {
color: black;
float: left;
padding: 8px 16px;
text-decoration: none;
transition: background-color .3s;
border: 1px solid #ddd;
margin: 0 4px;
}
.pagination a.active {
background-color: #4CAF50;
color: white;
border: 1px solid #4CAF50;
}
.pagination a:hover:not(.active) {background-color: #ddd;}
</style>
</head>
<body>
<table id="myTable">
<thead>
<tr>
<th>Name</th>
<th>Age</th>
<th>City</th>
<th>Country</th>
</tr>
</thead>
<tbody>
<tr><td>John Doe</td><td>30</td><td>New York</td><td>USA</td></tr>
<tr><td>Jane Doe</td><td>25</td><td>London</td><td>UK</td></tr>
<tr><td>Bob Smith</td><td>40</td><td>Paris</td><td>France</td></tr>
<tr><td>Sara Wilson</td><td>35</td><td>Sydney</td><td>Australia</td></tr>
<tr><td>Tom Brown</td><td>28</td><td>Tokyo</td><td>Japan</td></tr>
<tr><td>Alice Lee</td><td>32</td><td>Beijing</td><td>China</td></tr>
<tr><td>Mike Johnson</td><td>45</td><td>Moscow</td><td>Russia</td></tr>
<tr><td>Emily Davis</td><td>27</td><td>Toronto</td><td>Canada</td></tr>
</tbody>
</table>
<div class="pagination"></div>
<script>
var table = document.getElementById("myTable");
var rowsPerPage = 3;
var currentPage = 1;
function displayTable() {
// Calculate the start and end index of the current page
var startIndex = (currentPage - 1) * rowsPerPage;
var endIndex = startIndex + rowsPerPage;
var rows = table.rows;
// Hide all rows except those on the current page
for (var i = 1; i < rows.length; i++) {
if (i < startIndex || i >= endIndex) {
rows[i].style.display = "none";
} else {
rows[i].style.display = "";
}
}
// Update the pagination links
var paginationLinks = document.querySelector(".pagination");
var numPages = Math.ceil((rows.length - 1) / rowsPerPage);
paginationLinks.innerHTML = "";
for (var i = 1; i <= numPages; i++) {
var link = document.createElement("a");
link.href = "#";
link.innerHTML = i;
if (i == currentPage) {
link.classList.add("active");
}
link.addEventListener("click", function(e) {
e.preventDefault();
currentPage = parseInt(this.innerHTML);
displayTable();
});
paginationLinks.appendChild(link);
}
}
displayTable();
</script>
</body>
</html>
```
在这个示例中,我们使用了一个表格元素,其中包含了一些数据行和一个表头行。我们还定义了一个 `pagination` 类来包装我们的分页链接,以及一个 `displayTable` 函数来根据当前页码显示表格的一部分。
当我们加载页面时,我们调用了 `displayTable` 函数来显示第一页的数据。这个函数会计算出当前页码的起始和结束索引,并使用 `style.display` 属性来隐藏或显示表格行。我们还计算了总页数,并使用 JavaScript 动态创建了分页链接。
当用户单击分页链接时,我们更新了当前页码,并再次调用了 `displayTable` 函数来显示新的一页数据。注意,我们使用了 `preventDefault` 方法来阻止默认的链接行为,这样单击链接时浏览器就不会跳转到另一个页面。
这只是一个简单的示例,你可以根据自己的需求进行修改和定制。
阅读全文