以下是一个使用纯 JavaScript 实现分页的简单示例:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>纯 JS 分页示例</title>
<style>
.item {
padding: 8px;
border: 1px solid #ccc;
margin-bottom: 4px;
}
.pagination {
display: flex;
justify-content: center;
margin-top: 20px;
}
.pagination button {
padding: 5px 10px;
margin: 0 2px;
border: 1px solid #ccc;
background-color: #fff;
cursor: pointer;
}
.pagination button.active {
background-color: #007BFF;
color: #fff;
border-color: #007BFF;
}
</style>
</head>
<body>
<div id="content"></div>
<div class="pagination" id="pagination"></div>
<script>
// 要分页的数据
const data = [];
for (let i = 1; i <= 100; i++) {
data.push(`项目 ${i}`);
}
const itemsPerPage = 10; // 每页显示的条目数
let currentPage = 1; // 当前页码
function renderPage(page) {
const start = (page - 1) * itemsPerPage;
const end = start + itemsPerPage;
const pageData = data.slice(start, end);
const contentDiv = document.getElementById('content');
contentDiv.innerHTML = '';
pageData.forEach(item => {
const div = document.createElement('div');
div.className = 'item';
div.textContent = item;
contentDiv.appendChild(div);
});
}
function renderPagination() {
const totalPages = Math.ceil(data.length / itemsPerPage);
const paginationDiv = document.getElementById('pagination');
paginationDiv.innerHTML = '';
for (let i = 1; i <= totalPages; i++) {
const button = document.createElement('button');
button.textContent = i;
if (i === currentPage) {
button.classList.add('active');
}
button.addEventListener('click', () => {
currentPage = i;
renderPage(currentPage);
renderPagination();
});
paginationDiv.appendChild(button);
}
}
// 初始渲染
renderPage(currentPage);
renderPagination();
</script>
</body>
</html>
在上述示例中:
一、基础概念
Array.prototype.slice
方法根据当前页码和每页显示数量从原始数据数组中获取要显示的部分数据。click
事件监听器,当按钮被点击时更新当前页码并重新渲染页面内容和分页按钮。二、优势
三、应用场景
四、可能遇到的问题及解决方法
slice
)支持不佳的情况。领取专属 10元无门槛券
手把手带您无忧上云