…">
当前位置:首页 > 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 实现点击跳转的方法 在 Vue 中实现点击跳转可以通过以下几种方式: 使用 router-link router-link 是 Vue Router 提供的组件,用于声明式导航。适合在模板中…

jquery跳转

jquery跳转

jQuery 页面跳转方法 使用 jQuery 实现页面跳转有多种方式,以下是几种常见的方法: 使用 window.location.href $(document).ready(function…

vue router实现分页

vue router实现分页

使用 Vue Router 实现分页 在 Vue.js 项目中,可以通过 Vue Router 结合分页组件实现分页功能。以下是实现分页的几种方法: 使用路由参数传递页码 在路由配置中定义一个动态参…

vue实现页面分页

vue实现页面分页

Vue实现页面分页的方法 使用Element UI的分页组件 Element UI提供了现成的分页组件el-pagination,适合快速集成。以下是一个示例代码: <template>…

uniapp 分页组件

uniapp 分页组件

uniapp 分页组件实现方法 在uniapp中实现分页功能,可以通过自定义组件或使用第三方组件库完成。以下是几种常见实现方式: 自定义分页组件 创建一个名为uni-pagination的组件,模板…

vue实现路由跳转

vue实现路由跳转

路由跳转的基本方法 在Vue中,路由跳转可以通过vue-router实现。vue-router是Vue.js官方的路由管理器,用于构建单页面应用(SPA)。以下是几种常见的路由跳转方式。 声明式导航…