一、思路

1.设置全局变量,当前页,总页数,总条数,每页显示多少条,所有页数据,当前页数据,start(总数据开始截取位置)、end(总数据结束截取位置)

2.调用接口,请求到所有的数据后,改变相应的全局变量

3.通过对总数据进行filter过滤得到当前页数据,然后把数据渲染到表格上,

4.其他操作:如页码的点击、左右箭头的点击都会改变当前页的内容,就是改变相应全局变量,然后重新过滤当前页数据,然后进渲染到页面上

二、具体步骤

1.定义变量

//当前页
let nowPage = 1// 每页显示多少条
let pageCount = 2// 总页数
let totalPage// 总条数
let totalNumber// 总内容
let totalArr// 当前页内容
let pageArr//总数据过滤开始的位置
let start//总数据过滤结束的位置
let end//判断搜索还是展现数据(不用管)
let flag = true

2.调用接口

//基于jQuery
$(function() {get_cxc_table_data()
})// 请求数据
function get_cxc_table_data() {flag = true$.ajax({url: BASEURL + TEAMCONTRACTLIST,type: 'post',success(res) {//改变相应的全局变量//总条数totalNumber = res.data.length//所有数据totalArr = res.data//渲染表格的方法addTable(totalArr, nowPage, pageCount)// 创建页数的方法addPage(totalArr.length)}})
}

3.渲染表格

// 动态添加到table表格中
//@params arr:渲染的数据
//@params now:当前页
//@params count:每页显示几条数据
function addTable(arr, now, count) {// 将之前的表格清空$('#teamList').html('')//渲染的字符串let tr = ''//过滤总数据开始的位置和结束的位置//规律//(当前页数-1)*每页显示几条数据<**当前页的数据**<当前页*每页显示几条数据start = (now - 1) * countend = now * count// 过滤中数据得到当前页数据 pageArr = arr.filter((item, index) => {return index >= start && index < end})//循环当前页的数据到表格中pageArr.forEach(item => {console.log(item);tr += `<tr><td><a href="lookfamilydoctor.html?tid=${item.d_id}" style="color: #1D65A6;">${item.d_name}                          </a></td><td>${item.d_sex}</td><td>${item.d_sid}</td><td>${item.d_tel}</td><td>${item.d_join}</td><td>${item.d_feature}</td><td><button data-id=${item.d_id} type="button" class="btn btn-danger cxc_xiugai"><spanclass="iconfont icon-xiugai">修改</span></button><button data-id=${item.d_id} type="button" class="btn btn-warning shanchuzwy" ><spanclass="iconfont icon-shanchu">删除</span></button></td></tr>`});$('#teamList').append(tr)
}

4.动态创建页数

// 动态创建页数
function addPage(length) {// 将之前页码等清空$('.zwy_par').html('')//总页数totalPage = Math.ceil(length / pageCount)// 添加总页数let allPage = `<div id='zwylb4' class='zwy_par'><div id="zwylb1">共有${totalNumber}条数据</div></div>`$('#zwylb2').before(allPage)// 将之前的清空$('#zwylb3').html('')// 添加左箭头let strstr = `<button type="button"  class="btn btn-default cxc_left_button" ;background-color: #fff;">< </button>`// 添加页码for (let i = 1; i <= totalPage; i++) {str += `<button type="button" class="btn btn-default  cxc_button">${i}</button>`}// 添加右箭头str += `<button type="button" class="btn btn-default cxc_right_button" ;">></button>`$('#zwylb3').append(str)
}

5.其他方法

点击改变相应的全局变量,重新渲染就可以了

// 每页显示多少条
$('.zwywb_child').on('change', '#zwylb2', function() {console.log(this);pageCount = $('#zwylb2>option:selected').val()get_cxc_table_data()
})//左右箭头的点击,做越界判断
$(document).on('click', '.cxc_left_button', function() {if (nowPage > 1) {nowPage--get_cxc_table_data()}
})$(document).on('click', '.cxc_right_button', function() {if (nowPage < totalPage) {nowPage++get_cxc_table_data()}
})// 页码的点击
$(document).on('click', '.cxc_button', function() {nowPage = $(this).text()$('#zwlb4').val($(this).text())if (flag == true) {get_cxc_table_data()} else {searchDoctor()}
})// 输入跳转到多少页回车跳转
$('#zwlb4').on('change', function(e) {if ($('#zwlb4').val() <= totalPage && $('#zwlb4').val() > 0) {nowPage = $('#zwlb4').val()get_cxc_table_data()}
})

前端分页(详细步骤)相关推荐

  1. Vue后台 - 利用 mockjs 完成数据的获取、编辑、增加、删除和分页【详细步骤篇】

    文章目录 一.前言 二.项目原型和大致需求 在这里插入图片描述 三.项目目录 四.详细步骤 1.新建一个mock文件,写接口,在页面中调用拿到mock数据 2.获取数据,完成分页和查询功能 3.新增. ...

  2. vue2引入Element UI的详细步骤

    目录 一.Element UI介绍 Element UI的特点: vue3引入Element plus的文章: 二.操作步骤 三.快速上手测试(可做可不做) 一.Element UI介绍 Elemen ...

  3. Jquery前端分页插件pagination同步加载和异步加载

    上一篇文章介绍了Jquery前端分页插件pagination的基本使用方法和使用案例,大致原理就是一次性加载所有的数据再分页.https://www.jianshu.com/p/a1b8b1db025 ...

  4. Flink实例-Wordcount详细步骤

    link实例之Wordcount详细步骤 1.我的IDE是IntelliJ IDEA.在官网上https://www.jetbrains.com/idea/下载最新版2018.2的IDEA,如下图.破 ...

  5. Zabbix3.4安装详细步骤

    Zabbix3.4安装的详细步骤 一.zabbix介绍 现在大多数公司都会用到监控软件,主流的监控软件就是Zabbix了,当然还会有Nagios等其他的软件: zabbix是一个基于WEB界面的提供分 ...

  6. springboot配置shiro多项目实现session共享的详细步骤

    springboot配置shiro多项目实现session共享的详细步骤 公司需要这样的需求: 有两个项目master 主项目.suiteone 项目,两个项目各自由shiro 安全框架管理,当不能登 ...

  7. 悟空CRM9从零开始搭建详细步骤——肯定成功

    悟空CRM9从零开始搭建详细步骤 -------------------------------------- 欢迎留言,欢迎各位一起加入开源,愿意共享分享学习经验. 特别感谢打赏点赞的朋友,我们一起 ...

  8. node.js 安装详细步骤

    初学NodeJS,就是要弄清楚什么是nodejs,能做什么,怎么用.. 什么是nodejs? 脚本语言需要一个解析器才能运行,JavaScript是脚本语言,在不同的位置有不一样的解析器,如写入htm ...

  9. Linux安装mysql详细步骤

    linux安装mysql详细步骤 最近买了个腾讯云服务器,搭建环境. 该笔记用于系统上未装过mysql的干净系统第一次安装mysql.自己指定安装目录,指定数据文件目录. linux系统版本: Cen ...

  10. h5接微信js-sdk的详细步骤

    h5接微信js-sdk的详细步骤 JS-SDK配置流程(前端需要做的) 1.配置JS安全域名 2.服务接入 3.引入Js文件 4.使用wx.config进行权限验证 5.代码 JS-SDK配置流程(后 ...

最新文章

  1. 2019展望:超级智能崛起,人类智慧与机器智能将深度融合
  2. Linux非阻塞IO(八)使用epoll重新实现非阻塞的回射服务器
  3. Fedora 17 下安装codeblocks
  4. 号召,有兴趣做博客园自己的网络游戏的请举手..
  5. 【JavaSE02】Java基本语法-概念
  6. wxWidgets:wxMenu类用法
  7. hikaridatasource连接池_细数springboot中的那些连接池
  8. 递归与非递归法实现链表相加 CC150 V5 2.5题 java版
  9. Diango博客--13.将“视图函数”类转化为“类视图”
  10. Serverless爆发,前端又一大利好消息
  11. System.Runtime.InteropServices.COMException 检索COM类工厂中CLSID{xxxxxxxxx}的组件时失败解决方法...
  12. [原创]CAN总线数据计算器V1.01
  13. 面试常问的深度学习(DNN、CNN、RNN)的相关问题
  14. C# 设置Windows程序窗口为穿透状态
  15. working copy is not up-to-date
  16. ECshop仿顺丰优选综合购物商城平台源码旗舰版+团购+触屏版+微信支付
  17. python代码翻译器-Python实现翻译软件
  18. beanstalkd协议解读(中文翻译加个人理解)
  19. 排队服务系统仿真研究计算机模拟,基于蒙特卡洛方法排队系统性能的仿真优化研究...
  20. 软考易错知识点(自用)

热门文章

  1. photoshop(ps)基础入门知识 认识图层
  2. 信息系统监理师考试知识点整理
  3. 【新书推荐】【2019】电磁理论和等离子体电子学的工程师手册
  4. 初识微信小程序 字体样式设置
  5. 【美少女】阿里巴巴实习三个月总结
  6. 2020.04.07 Windows 10 一次系统蓝屏的修复过程
  7. OpenModelica.VehicleInterfaces离线库安装
  8. Python-OpenCV——Image inverting
  9. 如何将png转换成jpg呢?
  10. hi3519叠加OSD