简单分页功能的实现

jquery实现简单的分页功能 jquery实现简单的分页功能 本文适合少量数据的使用,如果数据条数过多,不太适合! 页面html代码 <table> <!--展示数据的表格--> </table> <ul class="ul"> <!--用于样式切换的列表--> </ul> css样式 table { text-align: cen... 阅读详情

分页功能有很多种实现方法,但是大体原理都是差不多的。
先说下我理解的分页的原理吧。
首先,通过sql语句查询,后台可以得到数据库中所需要数据的总条数,通过limit,也能得到指定范围的数据,这是后台的事。
我们前端大概需要两个参数,一个是当前页(pageNow),一个是每页显示多少条数据(pageSize)。
sql语句limit后面跟着的是所取数据的上界下界。比如说第一页取第一到第十条第二页取十一到20条,就是limit 1,10或者limit 11,20,我们可以通过(pageNow-1)*pageSize+1,pageNow*pageSize,获取到我们需要的数据,这也是后台的事。
还需要得到的一个数据就是总页数,总页数也有很多能得到的方式。比如说100条数据,每页显示10条那就是10页,101条就要11页,总页数(pageCount)就是总条数(Count)/pageSize取上限,javascript中pageCount = Math.ceil(Count/pageSize);
后台如何获得到数据我们前端暂时不用关心,我们只用知道后台需要我们提供给它们当前页pageNow,每页显示条数pageSize,以及我们需要从后台得到的数据,总页数。接下来我们写一个bootstrap的分页。

/*计算总页数开始 */
    function getTotalPage(Count) {
        var pageCount = Math.ceil(Coun / pageSize);
        $("#bootstrapfenye").html("");

/*第一页及上一页 */
        var html = "<nav><ul class='pagination'><li class='herffirst'><a href='#' >&laquo;</a></li>";
        html = html + "<li class='old'><a href='#' >&lt;</a>"

/*动态加载为总页数的标签页 */
        for (var i = 1; i <= pageCount; i++) {
            if (i == 1) {
                html = html + "<li class='aherf active'><a href='#' >" + i+ "</a></li>";
            } else {
                html = html + "<li class='aherf'><a href='#' >" + i+ "</a></li>";
            }
        }
/*下一页及末页 */
        html = html + "<li class='next'><a href='#' >&gt;</a>"
        html = html+ " <li class='herflast'><a href='#' >&raquo;</a></li></ul></nav>";
        $('#bootstrapfenye').append(html);
        return pageCount;
    }
    /*计算总页数结束 */`

`
这时候我们的分页的外观就能显示出来了,接着我们所需要做的就是处理分页时候页面跳转的逻辑。
当页面加载时,默认为第一页。当点击第一页的时候,pageNow变为第一页,当点击末页的时候,pageNow变为与总页数相等的数值。当点下一页的时候,pageNow+1,其余li移除active类,下一页获得active类,上一页同理。接着不管点什么的时候,都做一个判断,先将所有的都移除disabled样式,接着当pageNow=1的时候将第一页上一页都变为disabled,当pageNow=pageCount的时候,将下一页及末页都变为disabled;然后给有disabled样式的元素添加不可点击的事件。

$(function() {
        /*上一页 */
        pageCount  = getTotalPage(Count());
        checkactive(pageCount );
        $("#bootstrapfenye").on("click", ".old", function() {
            if (pageNow > 1) {
                pageNow -= 1;
                /*pagingCount()与pagingList()为两个与后台交互的方法并对得到数据进行处理的方法 */
                pagingCount();
                pagingList();
                $(".aherf").removeClass("active");
                $(".aherf").eq(pageNow - 1).addClass("active");
                checkactive(pageCount)
            }
        });
        /* 下一页*/
        $("#bootstrapfenye").on("click", ".next", function() {
            if (pageNow < pageCount ) {
                pageNow += 1;
                pagingCount();
                pagingList();
                $(".aherf").removeClass("active");
                $(".aherf").eq(pageNow - 1).addClass("active");
                checkactive(pageCount);
            }
        });
        /*第一页 */
        $("#bootstrapfenye").on("click", ".herffirst", function() {
            checkactive(pageCount );
            if (pageNow > 1) {
                pageNow = 1;
                pagingCount();
                $(".aherf").removeClass("active");
                $(".aherf").eq(0).addClass("active");
                pagingList();
                checkactive(pageCount);
            }
        });
        /* 最后一页*/
        $("#bootstrapfenye").on("click", ".herflast", function() {
            if (pageNow < pageCount ) {
                pageNow = pageCount ;
                pagingCount();
                $(".aherf").removeClass("active");
                $(".aherf").eq(pageNow - 1).addClass("active");
                pagingList();
                checkactive(pageCount)
            }
        });
        /* 当前页 */
        $("#bootstrapfenye").on("click", ".aherf", function() {
            $(".aherf").removeClass('active');
            $(this).addClass('active');
            pageNow = $(this).text();
            pagingCount();
            pagingList();
            checkactive(pageCount)
        });
    })

    /*分页判断 */
    function checkactive(obj) {
        var activeNum = $('.active').text();
        $("nav li").removeClass("disabled");
        if (activeNum == 1) {
            $(".old").addClass("disabled");
            $(".herffirst").addClass("disabled");
            disabledclick();
        } else if (activeNum == obj) {
            $(".next").addClass("disabled");
            $(".herflast").addClass("disabled");
            disabledclick();
        }
    }
    /*按钮禁用 */
    function disabledclick() {               $("#bootstrapfenye").on("click",".disabled",function() {
            return false
        })
    }
    /* 分页结束 */

中间存在许多冗余代码,应该还可以继续精简。分页大功能大致就是这么实现的。

Flask学习系列11——sqlalchemy实现简单分页功能 在web开发中,分页是必不可少的功能,这里通过实例来了解下简单的分页功能。 1.test.py文件 @web_blue.route('/') def stu_psge(): # 获取page参数 默认为1 page = int(request.args.get('page',1)) # 获取每页显示数据条数默认为2 per_page = int(request.args.... 阅读详情

相关推荐

JS+HTML分页代码

通过JS和HTML实现的分页功能代码,有首页,前页,后页,尾页和分页页号等功能,

分页计算页数

向上取整 pageCount = Math.ceil( recordcount/ pagesize);

pmandy的专栏 230

jsp+mysql实现博客的分页功能(只有主要代码哦)

这是一个用jsp实现博客分页功能封装的一个类,可以用来实现分页,很好用哦!

简单的网页分页实现

写在前面: 首先,这个简单例子是由React开发的,但这并不能代表什么,我会在必要的地方加上说明,以便于只了解vue的朋友也能看懂原理或者写法,毕竟两个框架有许多共通的地方。(PS:我个人看好vue,react写起来程序结构较于vue非常混乱。。。) 首先上代码: 这是文章列表的组件,其中又渲染了一个PageNavigator的子组件。 import React from 'react'; import './article.css'; import axios from 'axios'; imp

m0_60014407的博客 1014

CISP-PTE考前实操练习题

CISP-PTE考前学习练习题目,渗透测试功工程师

2301_79546223的博客 2000

Vivado安装教程:多版本共存的配置技巧

详解Vivado安装教程中的多版本共存配置技巧,帮助用户在同一系统中管理不同版本的Vivado开发环境,提升开发效率与兼容性,适用于需要切换版本的FPGA开发者。

weixin_35257663的博客 1776

分页查询数据类PagingData

分页查询数据类 public class PagingData&lt;T&gt; implements Serializable { // 构造初始化大小 public ModelTest() { list = new ArrayList&lt;T&gt;(); total= 0; } public ModelTest(Lis...

qiaziliping的博客 2219

【数据结构】考点二十八 : 二叉树的概念:二叉树的度、完全二叉树、满二叉数结点数、哈夫曼结点数、完全二叉树的深度

二叉树(Binary Tree)是一种常见的数据结构,它或者为空(null),或者由一个根节点(root node)和两个子树(left subtree 和 right subtree)组成,这两个子树又分别是一棵二叉树。二叉树的每个节点最多有两个子节点,通常称为左子节点(left child)和右子节点(right child)。

超越的博客 1738

react实现分页-封装组件

react实现分页-封装分页组件。用户上拉加载更多

weixin_43695726的博客 1307

WordPress插件depicter存在SQL注入漏洞(CVE-2025-2011)

Depicter 是一款功能强大的 WordPress 幻灯片插件,允许用户通过直观的拖放编辑器轻松创建响应式滑块、轮播和动态内容展示。该插件提供丰富的模板库、动画效果和图层控制,支持多媒体内容嵌入(如图片、视频、HTML),并优化了移动端显示和SEO性能。其无代码操作界面适合非技术用户,同时提供高级自定义选项,适用于产品展示、营销推广和视觉叙事等多种场景,是提升网站视觉吸引力的高效工具。

m0_50125527的博客 552

Open3D 计算点云的倒角距离(Chamfer Distance)【2025最新版】

;Chamfer Distance距离可以计算生成点云数据与标签点云数据之间的平均最短点距离。Open3D可以直接用来计算点云的Chamfer Distance距离。博客长期更新,本文最近一次更新时间为:2025年2月18日。

点云侠的博客 3254

SQL性能优化第一篇之分页数据与Count数据一次性获取

相信大部分人都会遇到:在数据库的数据量很大时,分页需要几秒钟才会全部完成;包括分页list的获取和count的获取。那我们完全可以将这两步放到一次sql去执行获取,减少一半的查询时间。这里get到sql_calc_found_rows和SELECT FOUND_ROWS()这两个知识点。看代码: select SQL_CALC_FOUND_ROWS col_name1 as colN...

小达哥的博客 1万+

这20个网络工程项目经验,帮我跳槽加薪不止一次

嘿,大家好,我是圈圈,一个在网络工程圈子里混了十多年的老鸟。从国企的网管起步,到现在给大厂做顾问,我见过太多简历:有的光鲜亮丽,证书一堆,但一聊项目,就露怯;有的简历朴实,但列出的项目经验让人眼前一亮,直接拿offer。为什么?因为招聘官最看重实战。理论谁都会背,项目经验才是你的“硬通货”。尤其在网络工程这行,项目不光证明你的技能,还展示你解决问题的能力。今天,我就分享20个我亲身经历或见过的网络工程项目经验。每个都值得写进简历,不是吹牛,这些项目帮我跳槽加薪不止一次。

网络技术联盟站 432

基于SSM的简单分页功能实现

基于SSM框架的简单分页实现简要说明项目结构分页原理实现代码(带详细注释)1.Page工具类 (比较重要的类,用来实现分页)2.UserDao.xml mybatis映射文件3.UserDao.java4.UserService.java5.UserServiceImpl.java6.DemoController.java (比较重要的类,会实现一些逻辑处理)7.User.java (差点漏了这个...

qq_43680542的博客 8662

已解决“TimeouEror [WinEror 10060由于连接方在一段时间后没有正确答复 或连接的主机没有反应,连接尝试失败“,亲测有效!!!

已解决"TimeouEror [WinEror 10060由于连接方在一段时间后没有正确答复 或连接的主机没有反应,连接尝试失败",亲测有效!!!

wbajsjhhhhh的博客 1万+

EMC中的RE测试与整改

测试主要测试电子、电气设备或系统在正常工作时自身对外界的辐射干扰强度,包括来自电路板、机箱、电缆及连接线等所有部件的辐射骚扰。分为:磁场辐射和。其中后者较为应用普遍。测试频段根据不同标准要求不一致。手机测试的频段主要为30-1000MHZ。需要注意的是设备在进行RE测试时要求尽可能满配置,满负荷的运行。同时RE也是EMC中的难点。

学海无涯的专栏 1670

vue实现简单的分页功能

@vue实现简单的分页功能 Vue自定义简单的列表分页查询 初学Vue,需要做一个简单的分页功能,实现列表的分页展示。看了其他的文章使用的各种组件都好像有点复杂,所以写了一个简单的,要展示的数据直接写在了Vuex的state中。 数据 写在了state中,可以通过this.$store.state.pdflist调用 // An highlighted block pdflist:[ { id:'1', desc:'关于调整人民币理财产品预期收益率的公告', }, { id:'2', desc:'关

qq_42139747的博客 915

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

简单的java web分页功能实现

本章介绍的是非常简单易懂的分页功能实现,适用数据量不大,以及想学习分页的思想的同学参考 废话不多说。分页的实现功能好几种,有的是把数据直接取出来放在一个定义的list <bean>中,再进行逻辑处理的正确的显示到页面中。同时也有一些现成的框架比如说 thymeleaf模板中也有分页,但是原理都差不多。 我要介绍的传统的分页的思想是,根据数据库的select * from table...

qq_38979958的博客 455

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

html用js给文字自动分页,JS实现的简单分页功能示例

本文实例讲述了JS实现的简单分页功能。分享给大家供大家参考,具体如下:HTML部分:user225男山西吕梁user325男山西吕梁user425男山西吕梁js部分:/*** 分页函数* pno--页数* psize--每页显示记录数* 分页部分是从真实数据行开始,因而存在加减某个常数,以确定真正的记录数* 纯js分页实质是数据行全部加载,通过是否显示属性完成分页功能**/function goP...

weixin_39975486的博客 790

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

简单的分页查询功能实现

简单的分页查询功能实现 首先先将后端的内容写好,这里我使用的是PHP语音 &lt;?php #配置默认行数 $pageSize @$pageSize = $_REQUEST["pageSize"]; if($pageSize == null){ $pageSize = 10; } #配置默认当前页 $currentPage ...

qq_44361433的博客 1285

基于SSM实现的简单分页功能

简单分页功能的实现效果图:简单分页功能的实现思想:1.后端根据前端传入的查询条件(班级号,页号,若页号为空,则设置页号为1),分页显示查询的结果&lt;!--根据班级号查询本班级的所有学生,并分页显示--&gt;&lt;select id="page" parameterType="java.util.Map" resultMap="TestStudentResult"&gt;SELECT stu...

Wall的博客 2960

html简单分页效果,JS实现的简单分页功能示例

本文实例讲述了JS实现的简单分页功能。分享给大家供大家参考,具体如下:HTML部分:js部分:parseInt(num/pageSize)){totalPage=parseInt(num/pageSize)+1;}else{totalPage=parseInt(num/pageSize);}var currentPage = pno;//当前页数var startRow = (currentPag...

weixin_29168153的博客 642

vue 实现简单表格分页功能

vue原生实现表格展示和跳转 代码:

weixin_42329007的博客 2037

Vue分页简单功能的实现

Vue分页简单功能的实现 这种方式适合数据量不是很大的页面分页 上代码: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale...

chenronglong20的博客 600

vue实现一个简单的分页功能

下面的内容我是在做一个关于婚纱项目中用到的,当时好久没用vue了,就上网区找了别人的博客来看,发现只有关于element_ui的,基本全是,对自己没用什么用,就自己写了一个,效果如下: 点击相应的按钮切换到对应的内容内容: 下面我只发核心代码,css样式就不发了,自己想怎么写怎么写 <!-- 分页内容 --> <ul class="blog-lists...

约妲己吃火锅的博客 1087
上一篇: 前端傻瓜式入门No.2
下一篇: 前端开发app,关于apicloud与dcloud的我的一些看法
泰穆格尔赛
博客等级 码龄10年 9粉丝 6原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值