2019独角兽企业重金招聘Python工程师标准>>>

效果图

html结构

<table id="cs_table" class="datatable"></table>

css样式

    html,body{margin: 0;padding:0}a:focus {outline: none;}/* 通用表格显示 */table, th, td {font: 12px Arial,Helvetica,sans-serif,'宋体';margin: 0;padding: 0}table{border-spacing: 0;border-collapse: collapse;}.datatable {width: 100%;border-style: none;background-color: #fff;margin-bottom: 20px;text-align: left;}.datatable th, .datatable td { padding: 5px;line-height: 30px}.datatable thead th {background-color: #eee;margin: 0;text-align: left;border-top: 1px solid #cfcfcf;border-bottom: 1px solid #cfcfcf;font-weight: 500}.datatable tbody td {background-color: #fff;border-bottom: 1px solid #ddd;table-layout:fixed;word-break:break-all;font-weight: 400}.datatable tbody tr.evenrow td {background-color: #f4f4f4;}.datatable tfoot td {background-color: #fafafa;text-align: right;border-bottom: 1px solid #cfcfcf;}/*表格分页列表*/.datatable td.paging a {border: 1px solid #eee; color: #444; margin: 4px; padding: 2px 7px; text-decoration: none; text-align:center;}/*表格分页当前页*/.datatable td.paging a.current {background: #eee; border: 1px solid #CFCFCF; color: #444; font-weight: bold;}.datatable td.paging a.current{border: 0;cursor: auto;background:none}

javascript封装代码

/*** 抽象化表格*/
function abstractTable(){// ---------内容属性this.id = null;         // 每个表格都有唯一的一个idthis.tableobj = null;  //表格对象this.rowNum = 0;       //行数this.colNum = 0;      //列数this.header = [];     //表头数据this.content = [];   //body数据// ----------提供外部使用获得表格内部数据this.currentClickRowID = 0;   //当前点击的行数据// --- 通过表头来获得这张表的列数this.getColNum = function(){this.colNum = this.header.length;return   this.colNum;}// -----------  表格自我构建行为this.clearTable = function(){};this.showHeader = function(){};this.showContent = function(begin,end){};this.showFoot = function(){};// --------- 分页功能属性this.allDataNum = 0;  // 总数据条数this.displayNum = 10; // 每页显示条数this.maxPageNum = 0;  // 最大页码值this.currentPageNum =1;// 当前页码值//tfoot分页组this.groupDataNum = 10;  //每组显示10页this.groupNum = 1;       //当前组// -------- 分页功能行为this.paginationFromBeginToEnd = function(begin,end){}this.first =  function(){}//首页this.last = function(){}//最后一页this.prev = function(){}//上一页this.next = function(){}//下一页this.goto = function(){} //跳到某页// ----------- 表格初始化this.init = function(begin,end){}}/*表格对象模板*/
function tableTemplet(table_id){abstractTable.call(this);this.id = table_id;}
/*** 表格对象* @param options*/
function table(options){if(!options){return;}if(!$.isPlainObject(options)){return;}tableTemplet.call(this,options.tableId);//得到表格对象this.tableobj = $("#"+this.id);//清空表格内容this.clearTable = function(){this.tableobj.html(" ");}// 实现分页行为this.paginationFromBeginToEnd= function(x,y){this.maxPageNum = Math.ceil(this.allDataNum/this.displayNum);var arrPage = [];for(var i= x;i<y;i++){arrPage.push(this.content[i]);}return arrPage;}this.showHeader = function(){if(this.header != null){var  $thead = $("<thead>"),$tr = $("<tr>"),$th;for(var i=0;i<this.colNum;i++){$th = $("<th>").html(this.header[i]);$th.appendTo($tr);}$tr.appendTo($thead);$thead.appendTo(this.tableobj)}}//初始化tbodythis.showContent = function(begin,end){if(this.content != null){var $tbody = $("<tbody>"),$tr,$td;var tempDaTa = this.paginationFromBeginToEnd(begin,end),len = tempDaTa.length;// 循环创建行for(var i=0;i<len;i++){$tr = $("<tr>").appendTo($tbody);if(i%2==1){$tr.addClass("evenrow");}// 循环创建列  取得对象中的键for(var key in tempDaTa[i]){$td = $("<td>").html(tempDaTa[i][key]).appendTo($tr);}}this.tableobj.append($tbody);}}//初始化tfootthis.showFoot = function(){var $tfoot = $("<tfoot>"),$tr = $("<tr>"),$td = $("<td>").attr("colspan",this.colNum).addClass("paging");$tr.append($td);$tfoot.append($tr);this.tableobj.append($tfoot);this.pagination($td);}//表格分页this.pagination = function(tdCell){var $td= typeof(tdCell) == "object" ? tdCell : $("#" + tdCell);//首页var oA = $("<a/>");oA.attr("href","#1");oA.html("首页");$td.append(oA);//上一页if(this.currentPageNum>=2){var oA = $("<a/>");oA.attr("href","#"+(this.currentPageNum - 1));oA.html("上一页");$td.append(oA);}//普通显示格式if(this.maxPageNum <= this.groupDataNum){  // 10页以内 为一组for(var i = 1;i <= this.maxPageNum ;i++){var oA = $("<a/>");oA.attr("href","#"+i);if(this.currentPageNum == i){oA.attr("class","current");}oA.html(i);$td.append(oA);}}else{//超过10页以后(也就是第一组后)if(this.groupNum<=1){//第一组显示for(var j = 1;j <= this.groupDataNum ;j++){var oA = $("<a/>");oA.attr("href","#"+j);if(this.currentPageNum == j){oA.attr("class","current");}oA.html(j);$td.append(oA);}}else{//第二组后面的显示var begin = (this.groupDataNum*(this.groupNum-1))+ 1,end ,maxGroupNum = Math.ceil(this.maxPageNum/this.groupDataNum);if(this.maxPageNum%this.groupDataNum!=0&&this.groupNum==maxGroupNum){end = this.groupDataNum*(this.groupNum-1)+this.maxPageNum%this.groupDataNum}else{end = this.groupDataNum*(this.groupNum);}for(var j = begin;j <= end ;j++){var oA = $("<a/>");oA.attr("href","#"+j);if(this.currentPageNum == j){oA.attr("class","current");}oA.html(j);$td.append(oA);}}}//下一页if( (this.maxPageNum - this.currentPageNum) >= 1 ){var oA = $("<a/>");oA.attr("href","#" + (this.currentPageNum + 1));oA.html("下一页");$td.append(oA);}//尾页var oA = $("<a/>");oA.attr("href","#" + this.maxPageNum);oA.html("尾页");$td.append(oA);var page_a = $td.find('a');var tempThis = this;page_a.unbind("click").bind("click",function(){var nowNum =  parseInt($(this).attr('href').substring(1));if(nowNum>tempThis.currentPageNum){//下一组if(tempThis.currentPageNum%tempThis.groupDataNum==0){tempThis.groupNum += 1;var maxGroupNum = Math.ceil(tempThis.maxPageNum/tempThis.groupDataNum);if(tempThis.groupNum>=maxGroupNum){tempThis.groupNum = maxGroupNum;}}}if(nowNum<tempThis.currentPageNum){//上一组if((tempThis.currentPageNum-1)%tempThis.groupDataNum==0){tempThis.groupNum -= 1;if(tempThis.groupNum<=1){tempThis.groupNum = 1;}}}if(nowNum==tempThis.maxPageNum){//直接点击尾页var maxGroupNum = Math.ceil(tempThis.maxPageNum/tempThis.groupDataNum);tempThis.groupNum = maxGroupNum;}if(nowNum==1){var maxGroupNum = Math.ceil(tempThis.maxPageNum/tempThis.groupDataNum);tempThis.groupNum = 1;}tempThis.currentPageNum = nowNum;tempThis.init((tempThis.currentPageNum-1)*tempThis.displayNum,tempThis.currentPageNum*tempThis.displayNum);return false;});}//初始化this.init = function(begin,end){this.header = options.headers;this.colNum = this.header.length;this.content = options.data;this.allDataNum = this.content.length;if(options.displayNum){this.displayNum = options.displayNum;}if(options.groupDataNum){this.groupDataNum = options.groupDataNum;}this.clearTable();this.showHeader();this.showContent(begin,end);this.showFoot();}this.init(0,options.displayNum);
}

调用方式

<script type="text/javascript">var data = [];for(var i=0;i<334;i++){data[i] = {id:i+1,name:"jason"+(i+1),gender:"男",age:26,address:"成都"};}var cs = new table({"tableId":"cs_table",    //必须"headers":["序号","姓名","性别","年龄","地址"],   //必须"data":data,        //必须"displayNum": 6,    //必须   默认 10"groupDataNum":9  //可选    默认 10
});
</script>

转载于:https://my.oschina.net/wbo0801/blog/309016

基于jquery的无刷新表格分页相关推荐

  1. 用Atlas来实现一个基于AJAX的无刷新Chatroom

    Atlas是微软提供的一个AJAX工具包,封装了实现AJAX的所需的Java Script,使用起来非常简单,可以直接调用Web Service方法,然后通过Asynchronous Call的方式回 ...

  2. JavaWeb之Ajax,省市联动及无刷新数据分页

    目录 一,Ajax的作用 二,$.ajax() 1.jQuery.ajax(url,[settings]) 2.$.ajax() 三,post 1.通过远程 HTTP POST 请求载入信息 2.jQ ...

  3. 用AJAX实现无刷新的分页

    最近学习了AJAX技术.AJAX,指的是异步的Javascript和xml.它的基本原理就是页面用Javascript发送一个异步的http请求到服务器,服务器返回数据后,再用Javascript静态 ...

  4. JQUERY AJAX无刷新异步上传文件

    AJAX无刷新上传文件并显示 http://blog.csdn.net/gao3705512/article/details/9330637?utm_source=tuicool jQuery For ...

  5. JQuery用户名无刷新验证

    本人也是JQuery初学者,写了个用户名无刷新验证的简单例子,拿来分享,共同学习一下吧. 1.在静态页面里添加文本框及样式和js脚本的引用: 代码 2.css样式表,当文本框文字为空时边框红色: .t ...

  6. PHP jQuery Ajax 无刷新表单提交实例

    采用 PHP 为后台,前端使用强大的 jQuery 库,可以很快写一个无刷新的表单实例. 整个过程分为两部分,一部分是 HTML 和 JS 文件,另一部分是 PHP 代码,返回服务器的响应. HTML ...

  7. php jquery ajax裁剪图照片,php+jquery+ajax无刷新图片上传裁切,模拟flash头像上传实例...

    这几天自己在写一个cms.之前在用到图片上传裁切的时候总是用的flash的,或者是swfupload之类的.用的还不熟练,所以今天就用ajax做一个图片上传裁切的实例.个人感觉还不错,现在就分享出来. ...

  8. jQuery实现无刷新切换主题皮肤功能

    主题皮肤切换功能在很多网站和系统中应用,用户可以根据此功能设置自己喜欢的主题颜色风格,增强了用户体验.本文将围绕如何使用jQuery实现点击无刷新切换主题皮肤功能. 实现该功能的原理就是通过点击定义的 ...

  9. php flash 图片上传,php+jquery+ajax无刷新图片上传裁切,模拟flash头像上传实例

    这几天自己在写一个cms.之前在用到图片上传裁切的时候总是用的flash的,或者是swfupload之类的.用的还不熟练,所以今天就用ajax做一个图片上传裁切的实例.个人感觉还不错,现在就分享出来. ...

最新文章

  1. 计算机视觉领域如何从别人的论文里获取自己的idea?
  2. WF4.0实战(七):请假流程(带驳回操作)
  3. C语言函数指针的MFC版本Demo
  4. VTK:多重渲染窗口用法实战
  5. switch与if效率实例解析·5年以下编程经验必看【C#】
  6. python字典视图
  7. html文档php 取mac地址_cpu序列号_硬盘序列号,用vbs脚本获取网卡MAC,CPUID,硬盘序列号的实现代码...
  8. JNI开发笔记(六)--一种更规范的so库生成方法
  9. FPGA时钟激励编写(方法三)
  10. Angular、React 当前,Vue.js 优劣几何?
  11. 【设计模式】组合模式 Composite Pattern
  12. 电脑有两个显示器用来显示,如何配置呢,请看下文
  13. 我搭的神经网络不work该怎么办!看看这11条新手最容易犯的错误
  14. python车牌识别_Python-车牌识别
  15. 苹果春季发布会确认:AirPods2、Apple TV服务等来袭,3月25日见
  16. 网络安全与渗透:漏洞攻击—— msf(四)此生无悔入华夏,男儿何不带吴钩
  17. 第10课:《ChatGPT提示工程》—— Guidelines(入门)
  18. 护眼的VS2019黑色主题!把 Visual Studio 2019 主题设置为 JetBrains Darcula 主题,类似 Pycharm, CLion, IntelliJ IDEA
  19. Lumerical MODE solution FBG光栅透射谱的仿真,官网fbg.lms例子的详解
  20. html按钮字号,html button样式

热门文章

  1. (0011) iOS 开发之模拟HTTP请求与响应,返回自己想要的报文。
  2. php连接mySql,加密函数
  3. AMI:加密的机器映像。卷
  4. 关系数据库标准语言 SQL (ch.3)
  5. Java面试题基础知识(收集)
  6. python --那些你应该知道的知识点
  7. python——异常(1),捕获特定异常
  8. AspectJ的注解开发AOP:异常抛出通知的学习
  9. Chrome浏览器打开异常慢的解决办法
  10. 安装完Hadoop之后,命令行输入hadoop或hdfs却找不到命令的解决方法