当前位置:首页 > JavaScript

js 实现分页

2026-04-03 18:53:02JavaScript

分页实现方法

在JavaScript中实现分页功能通常涉及前端数据处理或与后端API交互。以下是几种常见的实现方式:

纯前端分页(适用于数据量较小的情况)

将全部数据加载到前端,通过JavaScript进行分页处理:

const data = [...]; // 假设这是全部数据
const pageSize = 10;
let currentPage = 1;

function paginate(items, pageNumber, pageSize) {
  const startIndex = (pageNumber - 1) * pageSize;
  return items.slice(startIndex, startIndex + pageSize);
}

const paginatedData = paginate(data, currentPage, pageSize);

后端API分页(推荐方式)

与后端配合实现分页,通常需要传递页码和每页数量参数:

async function fetchPaginatedData(page, size) {
  const response = await fetch(`/api/data?page=${page}&size=${size}`);
  return response.json();
}

// 使用示例
fetchPaginatedData(1, 10).then(data => {
  console.log(data);
});

分页UI组件实现

结合DOM操作创建分页控件:

function createPagination(totalPages, currentPage) {
  let paginationHTML = '<div class="pagination">';

  // 上一页按钮
  if (currentPage > 1) {
    paginationHTML += `<button onclick="changePage(${currentPage - 1})">上一页</button>`;
  }

  // 页码按钮
  for (let i = 1; i <= totalPages; i++) {
    paginationHTML += `<button class="${i === currentPage ? 'active' : ''}" onclick="changePage(${i})">${i}</button>`;
  }

  // 下一页按钮
  if (currentPage < totalPages) {
    paginationHTML += `<button onclick="changePage(${currentPage + 1})">下一页</button>`;
  }

  paginationHTML += '</div>';
  document.getElementById('pagination').innerHTML = paginationHTML;
}

function changePage(page) {
  currentPage = page;
  // 重新获取数据或过滤现有数据
  updateDisplay();
}

完整示例(前端分页)

<div id="content"></div>
<div id="pagination"></div>

<script>
  const allData = Array.from({length: 100}, (_, i) => `项目 ${i + 1}`);
  const itemsPerPage = 10;
  let currentPage = 1;

  function displayItems() {
    const startIndex = (currentPage - 1) * itemsPerPage;
    const endIndex = startIndex + itemsPerPage;
    const paginatedItems = allData.slice(startIndex, endIndex);

    document.getElementById('content').innerHTML = 
      paginatedItems.map(item => `<div>${item}</div>`).join('');

    renderPagination();
  }

  function renderPagination() {
    const pageCount = Math.ceil(allData.length / itemsPerPage);
    let paginationHTML = '';

    if (currentPage > 1) {
      paginationHTML += `<button onclick="goToPage(${currentPage - 1})">上一页</button>`;
    }

    for (let i = 1; i <= pageCount; i++) {
      paginationHTML += `<button ${i === currentPage ? 'class="active"' : ''} onclick="goToPage(${i})">${i}</button>`;
    }

    if (currentPage < pageCount) {
      paginationHTML += `<button onclick="goToPage(${currentPage + 1})">下一页</button>`;
    }

    document.getElementById('pagination').innerHTML = paginationHTML;
  }

  function goToPage(page) {
    currentPage = page;
    displayItems();
  }

  // 初始化
  displayItems();
</script>

分页库推荐

对于复杂项目,可以考虑使用现成的分页库:

js 实现分页

  • react-paginate(React项目)
  • vuejs-paginate(Vue项目)
  • jquery.twbsPagination(jQuery项目)

这些库提供了更多定制选项和样式支持,可以节省开发时间。

标签: 分页js
分享给朋友:

相关文章

vue实现分页功能

vue实现分页功能

Vue 分页功能实现 在 Vue 中实现分页功能通常需要结合后端 API 或前端数据分页逻辑。以下是两种常见的实现方式: 前端分页实现 适用于数据量较小的情况,直接在 Vue 组件中处理分页逻辑。…

js实现验证码

js实现验证码

使用Canvas生成图形验证码 在HTML中创建一个Canvas元素用于绘制验证码。通过JavaScript随机生成数字或字母组合,并添加干扰线、噪点等干扰元素增强安全性。 <canvas i…

jquery.js

jquery.js

jQuery 是一个快速、简洁的 JavaScript 库,简化了 HTML 文档遍历、事件处理、动画设计和 Ajax 交互等操作。以下是关于 jQuery.js 的核心信息和使用方法: 获取 jQ…

react 如何分页

react 如何分页

分页实现方法 在React中实现分页功能可以通过多种方式完成,具体取决于数据来源(如API或本地数据)和UI库的选择。以下是常见的实现方法: 使用本地数据分页 对于存储在组件状态或Context中…

php分页代码简单实现

php分页代码简单实现

基本分页实现 在PHP中实现分页功能通常需要结合MySQL的LIMIT子句。以下是一个基础实现示例: <?php // 数据库连接 $conn = mysqli_connect("localh…

php实现分页功能

php实现分页功能

PHP实现分页功能的方法 数据库查询与分页逻辑 使用SQL的LIMIT和OFFSET实现分页。假设每页显示10条数据,当前页码为$page: $perPage = 10; $page = isset…