当前位置:首页 > JavaScript

js实现分页跳转

2026-01-30 18:37:41JavaScript

分页跳转的实现方法

在JavaScript中实现分页跳转功能,可以通过DOM操作结合事件监听完成。以下是常见的实现方式:

基础HTML结构

<div id="pagination">
  <button class="page-btn" data-page="1">1</button>
  <button class="page-btn" data-page="2">2</button>
  <button class="page-btn" data-page="3">3</button>
</div>
<div id="content"></div>

事件监听方式

document.querySelectorAll('.page-btn').forEach(btn => {
  btn.addEventListener('click', function() {
    const pageNum = this.getAttribute('data-page');
    loadPageContent(pageNum);
  });
});

function loadPageContent(page) {
  // 模拟AJAX请求或直接操作DOM
  document.getElementById('content').innerHTML = `当前显示第${page}页内容`;

  // 更新活动页样式
  document.querySelectorAll('.page-btn').forEach(btn => {
    btn.classList.remove('active');
    if(btn.getAttribute('data-page') === page) {
      btn.classList.add('active');
    }
  });
}

动态生成分页按钮

function generatePagination(totalPages, currentPage) {
  const pagination = document.getElementById('pagination');
  pagination.innerHTML = '';

  for(let i = 1; i <= totalPages; i++) {
    const btn = document.createElement('button');
    btn.className = `page-btn ${i === currentPage ? 'active' : ''}`;
    btn.textContent = i;
    btn.setAttribute('data-page', i);
    pagination.appendChild(btn);
  }

  // 重新绑定事件
  document.querySelectorAll('.page-btn').forEach(btn => {
    btn.addEventListener('click', function() {
      const page = parseInt(this.getAttribute('data-page'));
      generatePagination(totalPages, page);
      loadPageContent(page);
    });
  });
}

带前后导航的分页

function createAdvancedPagination(totalPages, currentPage) {
  const container = document.getElementById('pagination');
  container.innerHTML = '';

  // 上一页按钮
  if(currentPage > 1) {
    const prevBtn = document.createElement('button');
    prevBtn.textContent = '上一页';
    prevBtn.addEventListener('click', () => {
      generatePagination(totalPages, currentPage - 1);
      loadPageContent(currentPage - 1);
    });
    container.appendChild(prevBtn);
  }

  // 页码按钮
  for(let i = 1; i <= totalPages; i++) {
    const btn = document.createElement('button');
    btn.className = `page-btn ${i === currentPage ? 'active' : ''}`;
    btn.textContent = i;
    btn.addEventListener('click', () => {
      generatePagination(totalPages, i);
      loadPageContent(i);
    });
    container.appendChild(btn);
  }

  // 下一页按钮
  if(currentPage < totalPages) {
    const nextBtn = document.createElement('button');
    nextBtn.textContent = '下一页';
    nextBtn.addEventListener('click', () => {
      generatePagination(totalPages, currentPage + 1);
      loadPageContent(currentPage + 1);
    });
    container.appendChild(nextBtn);
  }
}

结合AJAX请求

async function loadPageContent(page) {
  try {
    const response = await fetch(`/api/data?page=${page}`);
    const data = await response.json();

    document.getElementById('content').innerHTML = data.content;
    generatePagination(data.totalPages, page);
  } catch(error) {
    console.error('加载分页数据失败:', error);
  }
}

样式处理建议

.page-btn {
  padding: 5px 10px;
  margin: 0 5px;
  cursor: pointer;
  border: 1px solid #ddd;
  background: white;
}

.page-btn.active {
  background: #007bff;
  color: white;
  border-color: #007bff;
}

实现分页跳转时需要考虑以下要点:

  • 当前页高亮显示
  • 边界情况处理(第一页和最后一页)
  • 异步数据加载时的状态管理
  • 移动端适配时的显示优化
  • 大量页码时的显示优化(如显示省略号)

js实现分页跳转

标签: 分页跳转
分享给朋友:

相关文章

vue分页实现

vue分页实现

实现Vue分页的几种方法 使用Element UI的分页组件 安装Element UI库后,可以直接使用其分页组件。以下是一个基本示例: <template> <div>…

js实现跳转

js实现跳转

使用 window.location 跳转 通过修改 window.location.href 或直接使用 window.location 实现页面跳转,适用于普通跳转或带参数的 URL。 // 方…

h5实现页面跳转

h5实现页面跳转

使用 <a> 标签实现跳转 通过 HTML5 的 <a> 标签实现页面跳转是最基础的方法,适用于静态页面或简单的导航需求。示例代码如下: <a href="target…

h5实现页面跳转页面

h5实现页面跳转页面

H5 实现页面跳转的方法 在 H5(HTML5)中,实现页面跳转可以通过多种方式完成,以下是常见的几种方法: 使用 <a> 标签 通过 HTML 的 <a> 标签实现页面跳转…

vue  实现分页

vue 实现分页

实现分页功能 在Vue中实现分页功能通常需要结合后端API或前端数据处理。以下是两种常见的实现方式: 前端分页实现 适用于数据量较小的情况,所有数据一次性加载到前端后进行分页处理: <…

react 如何分页

react 如何分页

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