当前位置:实例文章 » HTML/CSS实例» [文章]使用js实现分页列表复选框勾选

使用js实现分页列表复选框勾选

发布人:shili8 发布时间:2024-11-16 07:14 阅读次数:0

**使用 JavaScript 实现分页列表复选框勾选**

在现代 web 应用中,分页列表是非常常见的功能之一。用户需要浏览大量数据时,分页可以帮助我们提高页面加载速度和用户体验。然而,在这些分页列表中,实现复选框勾选功能也变得非常重要。用户可能需要选择某些特定的项,而不想全部选中。这篇文章将教你如何使用 JavaScript 实现分页列表复选框勾选。

**HTML 结构**

首先,我们需要定义 HTML 结构来支持我们的功能。我们将使用一个表格(table)来展示数据,并且在每个行中添加一个复选框(checkbox)。

html<!-- index.html -->
<!DOCTYPE html>
<html lang="en">
<head>
 <meta charset="UTF-8">
 <meta name="viewport" content="width=device-width, initial-scale=1.0">
 <title>分页列表复选框勾选</title>
 <style>
 table {
 border-collapse: collapse;
 }
 th, td {
 border:1px solid #ddd;
 padding:10px;
 }
 .checkbox {
 margin-right:10px;
 }
 </style>
</head>
<body>
 <h2>分页列表复选框勾选</h2>
 <table id="data-table">
 <thead>
 <tr>
 <th></th>
 <th>ID</th>
 <th>Name</th>
 <th>Email</th>
 </tr>
 </thead>
 <tbody id="data-body">
 <!-- 数据将在这里渲染 -->
 </tbody>
 </table>
 <div id="pagination-container">
 <button id="prev-page-btn" disabled>上一页</button>
 <span id="current-page-span">1/1</span>
 <button id="next-page-btn">下一页</button>
 </div>
 <script src="script.js"></script>
</body>
</html>


**JavaScript代码**

接下来,我们将编写 JavaScript代码来实现分页列表复选框勾选功能。我们将使用以下步骤:

1. 获取 HTML 元素2. 初始化数据和分页信息3. 实现分页逻辑4. 实现复选框勾选逻辑
javascript// script.jsclass Pagination {
 constructor(data, pageSize) {
 this.data = data;
 this.pageSize = pageSize;
 this.currentPage =1;
 this.totalPages = Math.ceil(this.data.length / this.pageSize);
 // 初始化分页信息 document.getElementById('current-page-span').innerText = `1/${this.totalPages}`;
 }
 // 实现分页逻辑 paginate() {
 const start = (this.currentPage -1) * this.pageSize;
 const end = Math.min(start + this.pageSize, this.data.length);
 // 渲染当前页面的数据 const dataBody = document.getElementById('data-body');
 dataBody.innerHTML = '';
 for (let i = start; i < end; i++) {
 const row = this.data[i];
 const checkboxHtml = `
 <input type="checkbox" class="checkbox" id="row-${i}" />
 <label for="row-${i}">${row.name}</label>
 `;
 // 添加复选框和数据 dataBody.innerHTML += `<tr>${checkboxHtml}<td>${row.id}</td><td>${row.email}</td></tr>`;
 }
 // 更新分页按钮状态 const prevPageBtn = document.getElementById('prev-page-btn');
 const nextPageBtn = document.getElementById('next-page-btn');
 if (this.currentPage ===1) {
 prevPageBtn.disabled = true;
 } else {
 prevPageBtn.disabled = false;
 }
 if (this.currentPage >= this.totalPages) {
 nextPageBtn.disabled = true;
 } else {
 nextPageBtn.disabled = false;
 }
 }
 // 实现复选框勾选逻辑 toggleCheckbox() {
 const checkboxes = document.querySelectorAll('.checkbox');
 // 添加事件监听器 checkboxes.forEach((checkbox) => {
 checkbox.addEventListener('change', () => {
 if (checkbox.checked) {
 console.log(`复选框 ${checkbox.id} 勾选`);
 } else {
 console.log(`复选框 ${checkbox.id} 取消勾选`);
 }
 });
 });
 }
}

// 初始化数据和分页信息const data = [
 { id:1, name: 'John Doe', email: 'john@example.com' },
 { id:2, name: 'Jane Doe', email: 'jane@example.com' },
 // ...
];

const pagination = new Pagination(data,10);
pagination.paginate();
pagination.toggleCheckbox();

// 实现分页逻辑document.getElementById('prev-page-btn').addEventListener('click', () => {
 if (pagination.currentPage >1) {
 pagination.currentPage--;
 document.getElementById('current-page-span').innerText = `${pagination.currentPage}/${pagination.totalPages}`;
 pagination.paginate();
 }
});

document.getElementById('next-page-btn').addEventListener('click', () => {
 if (pagination.currentPage < pagination.totalPages) {
 pagination.currentPage++;
 document.getElementById('current-page-span').innerText = `${pagination.currentPage}/${pagination.totalPages}`;
 pagination.paginate();
 }
});


以上就是使用 JavaScript 实现分页列表复选框勾选的步骤和代码示例。通过这些步骤和代码,你可以轻松地实现一个功能齐全的分页列表复选框勾选功能。

其他信息

其他资源

Top