有时候table的列数太长,不利于使用者查询,所以利用JS做了一个table的分页,以下为相关代码

一、JS代码

<script type="text/javascript">
var pageSize = ; //每页显示的记录条数
var curPage=; //当前页
var lastPage; //最后页
var direct=; //方向
var len; //总行数
var page; //总页数
var begin;
var end; $(document).ready(function display(){
len =$("#mytable tr").length - ; // 求这个表的总行数,剔除第一行介绍
page=len % pageSize== ? len/pageSize : Math.floor(len/pageSize)+;//根据记录条数,计算页数
// alert("page==="+page);
curPage=; // 设置当前为第一页
displayPage();//显示第一页 document.getElementById("btn0").innerHTML="当前 " + curPage + "/" + page + " 页 每页 "; // 显示当前多少页
document.getElementById("sjzl").innerHTML="数据总量 " + len + ""; // 显示数据量
document.getElementById("pageSize").value = pageSize; $("#btn1").click(function firstPage(){ // 首页
curPage=;
direct = ;
displayPage();
});
$("#btn2").click(function frontPage(){ // 上一页
direct=-;
displayPage();
});
$("#btn3").click(function nextPage(){ // 下一页
direct=;
displayPage();
});
$("#btn4").click(function lastPage(){ // 尾页
curPage=page;
direct = ;
displayPage();
});
$("#btn5").click(function changePage(){ // 转页
curPage=document.getElementById("changePage").value * ;
if (!/^[-]\d*$/.test(curPage)) {
alert("请输入正整数");
return ;
}
if (curPage > page) {
alert("超出数据页面");
return ;
}
direct = ;
displayPage();
}); $("#pageSizeSet").click(function setPageSize(){ // 设置每页显示多少条记录
pageSize = document.getElementById("pageSize").value; //每页显示的记录条数
if (!/^[-]\d*$/.test(pageSize)) {
alert("请输入正整数");
return ;
}
len =$("#mytable tr").length - ;
page=len % pageSize== ? len/pageSize : Math.floor(len/pageSize)+;//根据记录条数,计算页数
curPage=; //当前页
direct=; //方向
firstPage();
});
}); function displayPage(){
if(curPage <= && direct==-){
direct=;
alert("已经是第一页了");
return;
} else if (curPage >= page && direct==) {
direct=;
alert("已经是最后一页了");
return ;
} lastPage = curPage; // 修复当len=1时,curPage计算得0的bug
if (len > pageSize) {
curPage = ((curPage + direct + len) % len);
} else {
curPage = ;
} document.getElementById("btn0").innerHTML="当前 " + curPage + "/" + page + " 页 每页 "; // 显示当前多少页 begin=(curPage-)*pageSize + ;// 起始记录号
end = begin + *pageSize - ; // 末尾记录号 if(end > len ) end=len;
$("#mytable tr").hide(); // 首先,设置这行为隐藏
$("#mytable tr").each(function(i){ // 然后,通过条件判断决定本行是否恢复显示
if((i>=begin && i<=end) || i== )//显示begin<=x<=end的记录
$(this).show();
}); }
</script>

二、HTML代码

<a id="btn0"></a>
<input id="pageSize" type="text" size="" maxlength="" value="getDefaultValue()"/><a> 条 </a> <a href="#" id="pageSizeSet">设置</a>
<a id="sjzl"></a>
<a href="#" id="btn1">首页</a>
<a href="#" id="btn2">上一页</a>
<a href="#" id="btn3">下一页</a>
<a href="#" id="btn4">尾页</a>
<a>转到 </a>
<input id="changePage" type="text" size="" maxlength=""/>
<a>页 </a>
<a href="#" id="btn5">跳转</a> <table id="mytable" align="center">
...剩余的table代码

最后得到的例子效果如图:

利用js制作html table分页示例(js实现分页)的更多相关文章

  1. MvcPager 概述 MvcPager 分页示例 — 标准Ajax分页 对SEO进行优化的ajax分页 (支持asp.net mvc)

    该示例演示如何使用MvcPager最基本的Ajax分页模式. 使用AjaxHelper的Pager扩展方法来实现Ajax分页,使用Ajax分页模式时,必须至少指定MvcAjaxOptions的Upda ...

  2. 利用css+原生js制作简易钟表

    利用css+原生js制作简单的钟表.效果如下所示 实现该效果,分三大块:html.javascript.css html部分html部分比较简单,定义一个clock的div,内部有原点.时分秒针.日期 ...

  3. 使用Vue.js制作仿Metronic高级表格(一)静态设计

    Metronic高级表格是Metonic框架中自行实现的表格,其底层是Datatables.本教程将主要使用Vue实现交互部分,使用Bootstrap做样式库.jQuery做部分用户交互(弹窗). 使 ...

  4. 使用WebGL + Three.js制作动画场景

    使用WebGL + Three.js制作动画场景 3D图像,技术,打造产品,还有互联网:这些只是我爱好的一小部分. 现在,感谢WebGL的出现-一个新的JavaScriptAPI,它可以在不依赖任何插 ...

  5. Nodejs学习笔记(七)--- Node.js + Express 构建网站简单示例

    目录 前言 新建项目.建立数据库以及其它准备工作 新建express + ejs 项目:sampleEjs 创建数据库 修改package.json文件,安装session和mysql模块 样式和JQ ...

  6. 基于node.js制作爬虫教程

    前言:最近想学习node.js,突然在网上看到基于node的爬虫制作教程,所以简单学习了一下,把这篇文章分享给同样初学node.js的朋友. 目标:爬取 http://tweixin.yueyishu ...

  7. Nodejs学习笔记(十五)--- Node.js + Koa2 构建网站简单示例

    目录 前言 搭建项目及其它准备工作 创建数据库 创建Koa2项目 安装项目其它需要包 清除冗余文件并重新规划项目目录 配置文件 规划示例路由,并新建相关文件 实现数据访问和业务逻辑相关方法 编写mys ...

  8. js 利用 ajax 加载 js ,显示加载进度 ,严格按照js的顺序先后加载到页面

    js 利用 ajax 加载 js ,显示加载进度 ,严格按照js的顺序先后加载到页面 , 做手机端开发时,发现一个问题,有些浏览器,在网速比较慢的情况下,js文件没有加载完,后续的调用已经开始调用了, ...

  9. [转]Nodejs学习笔记(十五)--- Node.js + Koa2 构建网站简单示例

    本文转自:https://www.cnblogs.com/zhongweiv/p/nodejs_koa2_webapp.html 目录 前言 搭建项目及其它准备工作 创建数据库 创建Koa2项目 安装 ...

随机推荐

  1. etrace跟踪Nginx代码+ FASTCGI

    http://blog.csdn.net/jianqiangchen/article/details/29175285 http://blog.csdn.net/jianqiangchen/artic ...

  2. css考核点整理(八)-在什么情况下通过img引入图片,什么情况用背景图引入?背景属性有哪些

    在什么情况下通过img引入图片,什么情况用背景图引入?背景属性有哪些

  3. ubuntu环境配置之vi 配置【转载】

    ubuntu环境配置之vi 配置 [日期:2014-02-10] 来源:Linux社区  作者:zhonghe1114 [字体:大 中 小]   Android的源码开发,几乎离不开Linux,Lin ...

  4. 第一章 Android体系与系统架构

    1. Dalvik 和 ART(Android Runtime) 在Dalvik中应用好比是一辆可折叠的自行车,平时是折叠的,只有骑的时候,才需要组装起来用.在ART中应用好比是一辆组装好了的自行车, ...

  5. SQL PL基本概念

    --声明变量 --1.语法: --declare <varible-name> <data-type> <default-constant>默认不变 --decla ...

  6. CakePHP的文章分类的功能实现

    前些天实现了[微个人.大家园]的文章文类功能.现在回忆一下,是如何完成的吧. 具体的操作步骤如下: 1.在文章posts表里添加一个列,category_id. 2.在数据库中添加一个数据表,cate ...

  7. R cannot be resolved to a variable

    1. 检查Android 的SDK是否丢失需要重新下载,检查build path,把需要导入的JAR包确认都导入成功 2. 确保class没有import Android.R,注意是不能有Androi ...

  8. IE6 png兼容问题

    1.IE6 png  <!--[if IE 6]>  <script src="../js/png.js" type="text/javascript& ...

  9. 打开自定义链接新窗口(safari JS prompt的坑!)2016.03.08

    很简单的一个小练习,但做的过程中发现safari的一个坑,使用prompt()方法的时候,点击取消和不输入一样,会返回空字符' ',而不是null! 要求: 制作新按钮,"新窗口打开网站&q ...

  10. Junit4_单元测试

    不多说,直接练习学习. 1.将Junit4单元测试包引入项目:项目右键——“属性”,选择“Java Build Path”,然后到右上选择“Libraries”标签,之后在最右边点击“Add Libr ...