分页功能在项目开发中不可或缺,老司机操作起来就和呼吸一样简单,新手恐怕就会吃力一些。

今天我回顾了一下具体的操作步骤,决定详细的分析一下每一步的实现目的及原理。

我们会创建一个简单的json文件来模拟要从数据库请求的数据。

分页应注意下面几点问题:

1)  每页的条目数量,以下用show_per_page变量来表示

2)  页数的统计,总页数/show_per_page就是页数了

3)  利用a标签的href属性,指向对应的函数,就可以实现页面跳转

4)  定义a标签的一个longdisc属性,来判断哪个a标签被选中,给他添加active_page类名

HTML代码:

//用来存放目前的选中页

<input type='hidden' id='current_page' />

//存放显示的页面条数

<input type='hidden' id='show_per_page' />

//显示内容的盒子

<div id='content'>

</div>

//存放供选择页面的点击按钮

<div id='page_navigation'></div><br>

<br>

jQuery代码:

$(function(){

//一个ajax的get请求,获取要得到的数据

  $.get("get.json",function(data){

    var data=data;

//命名分页的条目数量

    var show_per_page = 5;

//获取到的数据条目数就是总的条目数量

    var number_of_items = data.list.length;

//遍历这些条目,创建p标签并添加到div里面

    var htmlStr="";

    $.each(data.list, function(index,obj) {

      htmlStr+="<p>"+obj+"</p>";

    });

    $("#content").append(htmlStr);

//显示的页数

    var number_of_pages = Math.ceil(number_of_items/show_per_page);

//选中页默认为0

    $('#current_page').val(0);

//显示页面的条数

    $('#show_per_page').val(show_per_page);

//拼接向前翻页字符串

    var navigation_html = '<a class="previous_link" href="javascript:previous();">Prev</a>';

//拼接将要显示的总页数的字符串,longdesc类似于alt标签属性,用作选中元素添加active_page类名

    var current_link = 0;

    while(number_of_pages > current_link){

navigation_html += '<a class="page_link" href="javascript:go_to_page(' + current_link +')" longdesc="' + current_link +'">'+     (current_link + 1) +'</a>';

      current_link++;

    }

//拼接向后翻页字符串

    navigation_html += '<a class="next_link" href="javascript:next();">Next</a>';

//将字符串添加到列表里

    $('#page_navigation').html(navigation_html);

//默认第一个页数按钮的class名字

    $('#page_navigation .page_link:first').addClass('active_page');

//将获取的条数全部隐藏

    $('#content').children().css('display', 'none');

//第一页显示的条数显示

    $('#content').children().slice(0, show_per_page).css('display', 'block');

  })

});

//向前翻页,回顾拼接字符串的点击跳转属性

function previous(){

  new_page = parseInt($('#current_page').val()) - 1;

//判断如果它前面有兄弟元素,即跳到前一页

  if($('.active_page').prev('.page_link').length==true){

    go_to_page(new_page);

  }

}

//向后翻页

function next(){

  new_page = parseInt($('#current_page').val()) + 1;

  //判断如果它后面有兄弟元素,即跳到后一页

  if($('.active_page').next('.page_link').length==true){

    go_to_page(new_page);

  }

}

//这才是最核心的函数,它带动每个翻页功能

function go_to_page(page_num){

  var show_per_page = parseInt($('#show_per_page').val());

  start_from = page_num * show_per_page;

  end_on = start_from + show_per_page;

//除了当前显示页面的数据显示,其余都隐藏

  $('#content').children().css('display', 'none').slice(start_from, end_on).css('display', 'block');

//当前点击的页面a按钮添加avtive_page类名,其余都移除

  $('.page_link[longdesc=' + page_num +']').addClass('active_page').siblings('.active_page').removeClass('active_page');

//最重要的一步

  $('#current_page').val(page_num);

}

这样代码就可以运行了

转载于:https://www.cnblogs.com/blue-wz/p/6279420.html

jQuery实现的简单分页功能的详细解析相关推荐

  1. C# DataGridView使用BindingNavigator实现简单分页功能

    接上一篇<DataGridView使用自定义控件实现简单分页功能>,本篇使用BindingNavigator来实现简单分页功能.其实也只是借用了一个BindingNavigator空壳, ...

  2. php的简单分页功能

    写程序的时候需要对信息进行查看,但数据量太大的时候,上下滚动会麻烦并且太多数据看着头疼,这个时候可以做一个分页功能.我写的这个比较简单的分页,可以根据自己的情况,对切页的操作进行修改,例如:增加一个跳 ...

  3. servlet和jsp实现简单分页功能

    最近在做毕设,需要写一个管理系统,对几个框架也不很是很熟练,所以就打算servlet和jsp来做这个项目. 其中分页是比较麻烦的一个问题,就在慕课网上找了视频看,整理了实现步骤.大家可以直接看我博客, ...

  4. 鸿蒙开发 拍照功能,详细解析(Js篇)

    鸿蒙3.0发布了,不知道大家有没有看有关的发布,说实话 3.0发布以后我很兴奋. 尤其是Android源码全部移除. 其实在开发中我们也发现了很多端倪,比如: 不支持Java语言方式开发了,我也下载了 ...

  5. 用HTML+CSS做一个漂亮简单的个人网页详细解析

    预览地址: https://static-32f9498d-9b46-413f-a441-4d6984c2edb5.bspapp.com/ Documenthttps://static-32f9498 ...

  6. jquery实现简单的分页功能

    jquery实现简单的分页功能 本文适合少量数据的使用,如果数据条数过多,不太适合! 页面html代码 <table> <!--展示数据的表格--> </table> ...

  7. JQuery Datatables 服务端分页简单应用学习

    背景介绍 最近在一个简单小项目中碰到需要一个前端数据表格控件,在看了网上的资料后最终选择了JQuery Datatables.Datatables功能及其强大,基本满足我的所有需求,在加上其插件Edi ...

  8. python嵌入html_Python odoo中嵌入html简单的分页功能

    在odoo中,通过iframe嵌入 html,页面数据则通过controllers获取,使用jinja2模板传值渲染 html页面分页内容,这里写了判断逻辑 首页 {% if current_page ...

  9. php按数字分页类,PHP简单实现数字分页功能示例

    本文实例讲述了PHP简单实现数字分页功能.分享给大家供大家参考,具体如下: header ( 'Content-Type: text/html; charset=utf-8' ); //分页 $pag ...

最新文章

  1. C#中调用Windows API时的数据类型对应关系
  2. JavaScript是如何工作的:事件循环和异步编程的崛起+ 5种使用 async/await 更好地编码方式!...
  3. FreeMarker语法指南
  4. matlab内置函数fitgeotrans与transformPointsForward解析
  5. C#格式化字符串净化代码的方法
  6. linux php错误日志在哪里,宝塔的php错误日志在哪
  7. CF932E Team Work
  8. AttributeError: module ‘tensorflow._api.v2.train‘ has no attribute ‘Optimizer‘
  9. 第二章 驱动程序调测方法与技巧
  10. 微信小程序代码大全 - 小程序开发福利
  11. python九宫格拼图游戏
  12. 2021有什么好的入耳式耳机推荐?耳机热销性价比牌子排行榜单推荐!
  13. k8s-CKS真题-CIS基准测试与安全扫描
  14. 安卓Trustzone有巨大漏洞?降级攻击为你做出解析!
  15. 2018四川高考数学(全国卷3)理科21题以泰勒公式为命题背景(同时深挖去年高考题)和它的另类解法的瞎谈...
  16. 深度学习理论解析与实战应用
  17. 词法分析二(词法分析程序)
  18. jersey (RESTful Web Service框架)
  19. WIN10安装矢量绘图软件Inkscape 1.0
  20. Linux中环境变量

热门文章

  1. 【转载】CMenu自绘---钩子---去除边框
  2. OpenCV实现最大最小距离聚类算法
  3. 一个有趣的python排序模块:bisect
  4. 如何实现不安装xpoedinstall激活xposed模块
  5. map端join和reduce端join的区别
  6. BZOJ3747: [POI2015]Kinoman
  7. 全开源深度学习平台PaddlePaddle入手之路(二)----利用Docker在Windows10专业版环境下配置PaddlePaddle...
  8. BZOJ 4407 于神之怒加强版
  9. 调用外部文件(ShellExecute)
  10. 信息化基础建设 开发框架