angularjs表格分页功能详解


Posted in Javascript onJanuary 21, 2016

接上一次,这次主要介绍表格分页功能,由于项目需要这个案例是关于前端分页的方式,现在很少会这么用了,但如有需要可以参考其中的思路

html:

1.通过UL来展示页标,其中每个页标的li是通过异步加载从获取到不同的表格数据来动态生成的。

<div class="pagination">
      <ul style="float:right">
        <li id="previous"><a href="">上一页</a></li>
        <li><!--用于页标的显示 -->
          <ul id="page_num_all">
          </ul>
        </li>
        <li id="next"><a href="" style="border:1px solid #ddd;float:right">下一页</a></li>
      </ul>
      <span>
        当前为第<span class="num" id="current_page"></span>页,总共<span class="num" id="page_all"></span>页
      </span>
    </div>

js:

1.首先需要设置每页想要显示的条数,通过选取页面元素来确定本次生成的总条数,以及当前所在的页数(为跳转做准备)

2.如果总页数大于生成的当前页数,则继续生成下一页直到完毕后,将角标添加到页面中

3.将所有的表格数据隐藏,只显示一开始设置的第一页中的5条

4.跳转页面功能,tab_page()通过传入的index(页数)*显示的条数来确定截取tr的开始位置和结束位置,然后将所有的tr隐藏,只显示该范围内的tr(display:“”);

5.上一页下一页和跳转功能,获取当前页的数字,注意判断是否为第一或最后一页,将其作为index传入跳转功能中即可

function table_page(){
      var show_page=5;//每页显示的条数
      var page_all=$("#page").children().size();//总条数
      var current_page=1;//当前页
//    console.log(page_all);
      var page_num=Math.ceil(page_all/show_page);//总页数
      var current_num=0;//用于生成页标的计数器
      var li="";//页标元素
      while(page_num>current_num){//循环生成页标元素
        li+='<li class="page_num"><a href="javasctip:(0)">'+(current_num+1)+'</a></li>';
        current_num++;
      }
      $("#page_num_all").html(li);//添加页标到页面
      $('#page tr').css('display', 'none');//设置隐藏
      $('#page tr').slice(0, show_page).css('display', '');//设置显示
      $("#current_page").html(" "+current_page+" ");//显示当前页
      $("#page_all").html(" "+page_num+" ");//显示总页数
      $("#previous").click(function(){//上一页
        var new_page=parseInt($("#current_page").text())-1;
        if(new_page>0){
          $("#current_page").html(" "+new_page+" ");
          tab_page(new_page);
        }
      });
      $("#next").click(function(){//下一页
        var new_page=parseInt($("#current_page").text())+1;//当前页标
        if(new_page<=page_num){//判断是否为最后或第一页
          $("#current_page").html(" "+new_page+" ");
          tab_page(new_page);
        }
      });
      $(".page_num").click(function(){//页标跳转
        var new_page=parseInt($(this).text());
        tab_page(new_page);
      });
      function tab_page(index){//切换对应页标的页面
        var start=(index-1)*show_page;//开始截取的页标
        var end=start+show_page;//截取个数
        $('#page').children().css('display', 'none').slice(start, end).css('display', '');
        current_page=index;
        $("#current_page").html(" "+current_page+" ");
      }
    }
table_page();

以上就是表格的前端分页方法和页数,页标等跳转方式的方法,请结合第一章中的数据测试。

Javascript 相关文章推荐
jQuery使用手册之三 CSS操作
Mar 24 Javascript
jQuery UI AutoComplete 使用说明
Jun 20 Javascript
找出字符串中出现次数最多的字母和出现次数精简版
Nov 07 Javascript
牛叉的Jquery——Jquery与DOM对象的互相转换及DOM的三种操作
Oct 29 Javascript
NPM 安装cordova时警告:npm WARN deprecated minimatch@2.0.10: Please update to minimatch 3.0.2 or higher to
Dec 20 Javascript
Angular2实现自定义双向绑定属性
Mar 22 Javascript
js实现首屏延迟加载实现方法 js实现多屏单张图片延迟加载效果
Jul 17 Javascript
vue中的ref和$refs的使用
Nov 22 Javascript
vue2 v-model/v-text 中使用过滤器的方法示例
May 09 Javascript
微信小程序 腾讯地图显示偏差问题解决
Jul 27 Javascript
JS替换字符串中指定位置的字符(多种方法)
May 28 Javascript
小程序实现可拖动的悬浮按钮
Sep 07 Javascript
使用angularjs创建简单表格
Jan 21 #Javascript
Jquery中巧用Ajax的beforeSend方法
Jan 20 #Javascript
Javascript中神奇的this
Jan 20 #Javascript
javascript实现图片轮播效果
Jan 20 #Javascript
JS获取鼠标坐标位置实例分析
Jan 20 #Javascript
属于你的jQuery提示框(Tip)插件
Jan 20 #Javascript
学习JavaScript设计模式之模板方法模式
Jan 20 #Javascript
You might like
冰滴咖啡制作步骤
2021/03/03 冲泡冲煮
将php数组输出html表格的方法
2014/02/24 PHP
php通过排列组合实现1到9数字相加都等于20的方法
2015/08/03 PHP
Laravel+jQuery实现AJAX分页效果
2016/09/14 PHP
PHP定时任务获取微信access_token的方法
2016/10/10 PHP
PHP开发之归档格式phar文件概念与用法详解【创建,使用,解包还原提取】
2017/11/17 PHP
原生JS实现Ajax通过POST方式与PHP进行交互的方法示例
2018/05/12 PHP
js focus不起作用的解决方法(主要是因为dom元素是否加载完成)
2010/11/05 Javascript
基于jquery的图片的切换(以数字的形式)
2011/02/14 Javascript
JQuery一种取同级值的方式(比如你在GridView中)
2012/03/15 Javascript
js精度溢出解决方案
2012/12/02 Javascript
JS控制图片翻转示例代码(兼容firefox,ie,chrome)
2013/12/19 Javascript
轻量级的原生js日历插件calendar.js使用指南
2015/04/28 Javascript
基于AngularJS实现iOS8自带的计算器
2016/09/12 Javascript
require.js+vue开发微信上传图片组件
2016/10/27 Javascript
浅析JavaScript动画模拟拖拽原理
2016/12/09 Javascript
从零学习node.js之利用express搭建简易论坛(七)
2017/02/25 Javascript
详细分析jsonp的原理和实现方式
2017/11/20 Javascript
vuejs中父子组件之间通信方法实例详解
2020/01/17 Javascript
python抓取网页中的图片示例
2014/02/28 Python
对于Python装饰器使用的一些建议
2015/06/03 Python
django2笔记之路由path语法的实现
2019/07/17 Python
浅谈Pycharm最有必要改的几个默认设置项
2020/02/14 Python
python统计函数库scipy.stats的用法解析
2020/02/25 Python
python+adb+monkey实现Rom稳定性测试详解
2020/04/23 Python
Python计算信息熵实例
2020/06/18 Python
python如何导出微信公众号文章方法详解
2020/08/31 Python
Python collections.deque双边队列原理详解
2020/10/05 Python
五种Python转义表示法
2020/11/27 Python
HTML5无刷新改变当前url的代码
2017/03/15 HTML / CSS
Rockport乐步美国官网:风靡美国的白宫鞋
2016/11/24 全球购物
你常见到的runtime exception
2016/09/05 面试题
学校采购员岗位职责
2014/01/02 职场文书
小学生母亲节演讲稿
2014/05/07 职场文书
导游词之临安白水涧
2019/11/05 职场文书
Python Pycharm虚拟下百度飞浆PaddleX安装报错问题及处理方法(亲测100%有效)
2021/05/24 Python