jquery实现简单的分页功能

jquery实现简单的分页功能

本文适合少量数据的使用,如果数据条数过多,不太适合!

页面html代码

<table>
<!--展示数据的表格-->
</table>
 <ul class="ul">
 <!--用于样式切换的列表-->
 </ul>

css样式

  table {
      text-align: center;
    }
    .ul li {
      padding: 0 5px;
      height: 20px;
      list-style: none;
      float: left;
      border: 1px solid #ccc;
      text-align: center;
      cursor: pointer;
    }
    .active {
      background: blue;
      color: #fff;
    }

jquery代码

  //使用axja获取后台数据,我这里请求的是本地的json文件
function getdata () {
  $.ajax({
    type: 'get',
    url: './test.json',
    success: function (res) {
      var len = res.length   //后端数据总条数
      var num = 5 //每一页5条数据,可以自己修改
      var totalPage = Math.ceil(res.length / num)  //总共有多少页
      var nownum = 1;   //当前的页码,默认在第一页
      var str = `<li class="prev"><<</li>`
      for (var i = 1; i <= totalPage; i++) {
        str += `<li class="li">${i}</li>`
      }
      str += `<li class="next">>></li>`
      $('.ul').html(str)  //展示页码
      showinfo(res, num, nownum)//展示首页数据
      $('.ul .li').eq(nownum - 1).addClass('active')
      for (let i = 0; i < totalPage; i++) {  //根据点击页码展示数据
        $('.ul .li').eq(i).on('click', function () {
          nownum = i + 1;
          lichange(i)
          showinfo(res, num, nownum)
        })
      }

      //点击切换上一页
      $('.prev').on('click', function () {
        if (nownum == 1) {
          alert('已经是第一页了!')
        } else {
          nownum = nownum - 1
          lichange(nownum - 1)
          showinfo(res, num, nownum)
        }
      })

      //点击切换下一页
      $('.next').on('click', function () {
        if (nownum == totalPage) {
          alert('已经最后一页了!')
        } else {
          nownum = nownum + 1
          lichange(nownum - 1)
          showinfo(res, num, nownum)
        }
      })

    },
    error: function (err) {
      console.log(err)
    }
  })
}

//信息展示模块
//res请求的json数据,n表示每页展示多少数据,Now当前页码
function showinfo (res, n, now) {
  //深拷贝数据,以免影响原来的数据
  var result = JSON.parse(JSON.stringify(res))
  var str = "<tr><th>商品</th><th>价格</th><th>数量</th></tr>"
  var i = (now - 1) * n        //从下标多少开始截取
  if (now === Math.ceil(res.length / n)) {//如果是最后一页
    result = result.slice(i);
    let num = result.length
    for (var k = 0; k < num; k++) {
      str += `<tr><td>${result[k].shop}</td><td>${result[k].price}</td>
      <td>${result[k].nums}</td></tr>`
    }
  } else { //不是最后一页
    result = result.splice(i, n);
    for (var j = 0; j < n; j++) {
      str += `<tr><td>${result[j].shop}</td><td>${result[j].price}</td>
        <td>${result[j].nums}</td></tr>`
    }
  }
  $('table').html(str)
}

//当前页码样式切换,通过传递当前点击li下标进行切换
function lichange (i) {
  $('.li').eq(i).addClass('active')
  $('.li').eq(i).siblings('.li').removeClass('active')
}

运行结果如图:
在这里插入图片描述

  • 6
    点赞
  • 31
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
可以通过以下步骤来实现jQuery分页功能: 1. 在HTML中添加分页元素,例如: ``` <div class="pagination"> <a href="#" class="prev">上一页</a> <span class="current">1</span> <a href="#" class="page">2</a> <a href="#" class="page">3</a> <a href="#" class="page">4</a> <a href="#" class="page">5</a> <a href="#" class="next">下一页</a> </div> ``` 2. 在jQuery中添加代码,获取分页元素,并为其添加事件监听器,例如: ``` $(document).ready(function() { // 获取分页元素 var $pagination = $('.pagination'); var $prev = $pagination.find('.prev'); var $next = $pagination.find('.next'); var $pages = $pagination.find('.page'); var $current = $pagination.find('.current'); // 为上一页按钮添加事件监听器 $prev.on('click', function(e) { e.preventDefault(); var $prevPage = $pages.filter('.active').prev('.page'); if ($prevPage.length > 0) { $pages.removeClass('active'); $prevPage.addClass('active'); $current.text($prevPage.text()); } }); // 为下一页按钮添加事件监听器 $next.on('click', function(e) { e.preventDefault(); var $nextPage = $pages.filter('.active').next('.page'); if ($nextPage.length > 0) { $pages.removeClass('active'); $nextPage.addClass('active'); $current.text($nextPage.text()); } }); // 为页码按钮添加事件监听器 $pages.on('click', function(e) { e.preventDefault(); var $page = $(this); if (!$page.hasClass('active')) { $pages.removeClass('active'); $page.addClass('active'); $current.text($page.text()); } }); }); ``` 3. 在CSS中添加样式,例如: ``` .pagination { display: inline-block; margin: 20px 0; } .pagination a { display: inline-block; padding: 5px 10px; margin: 0 5px; border: 1px solid #ccc; border-radius: 3px; color: #333; text-decoration: none; } .pagination .current { display: inline-block; padding: 5px 10px; margin: 0 5px; border: 1px solid #333; border-radius: 3px; color: #fff; background-color: #333; } ``` 这样就可以实现一个简单jQuery分页功能

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值