分页功能(jQuery+bootstrap)

效果
在这里插入图片描述

pagesManage.html

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8" /><meta name="viewport" content="width=device-width, initial-scale=1.0" /><title>Document</title><linkhref="https://cdn.bootcdn.net/ajax/libs/twitter-bootstrap/4.6.2/css/bootstrap.min.css"rel="stylesheet"/><!-- jQuery and JavaScript Bundle with Popper --><script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.5.1/jquery.min.js"></script><script src="https://cdn.bootcdn.net/ajax/libs/twitter-bootstrap/4.6.2/js/bootstrap.bundle.min.js"></script><link rel="stylesheet" href="./font/iconfont.css" /><link rel="stylesheet" href="./css/my_alert.css" /><link rel="stylesheet" href="./css/pagesManage.css" /></head><body><div class="divAll"><!-- 面包屑导航 --><nav aria-label="breadcrumb"><ol class="breadcrumb"><li class="breadcrumb-item"><a href="#">系统设置</a></li><li class="breadcrumb-item active" aria-current="page">页面信息管理</li></ol></nav><div class="behavior mb-3 ml-3"><button class="btn btn-info" onclick="search()">搜索</button><button class="btn btn-primary" onclick="add()">新增</button></div><table class="table"><thead><th>序号</th><th>页面名称</th><th>页面路径</th><th>备注</th><th>父级页面</th><th>操作</th></thead><tbody class="tShow"></tbody></table><!-- 分页 --><div class="pager ml-3"><selectname=""id=""class="form-control mr-2"onclick="changePageSize(this)"><option value="5">5/</option><option value="10">10/</option><option value="20">20/</option></select><nav aria-label="Page navigation"><ul class="pagination"><!-- <li class="page-item"><a class="page-link" href="#" aria-label="Previous"><span aria-hidden="true">&laquo;</span></a></li><li class="page-item"><a class="page-link" href="#">1</a></li><li class="page-item"><a class="page-link" href="#">2</a></li><li class="page-item"><a class="page-link" href="#">3</a></li><li class="page-item"><a class="page-link" href="#" aria-label="Next"><span aria-hidden="true">&raquo;</span></a></li> --></ul></nav><label for="" id="currentPageDom" class="mr-3 ml-3">当前第【x】页</label><label for="" id="totalCountDom">共【x】条</label></div></div><!-- 警告框 --><div class="my_alert"><div class="alert alert-success alert-dismissible" role="alert"><buttontype="button"class="close"data-dismiss="alert"aria-label="Close"><span aria-hidden="true">&times;</span></button><div class="msgText">xxxx</div></div><div class="alert alert-danger alert-dismissible" role="alert"><buttontype="button"class="close"data-dismiss="alert"aria-label="Close"><span aria-hidden="true">&times;</span></button><div class="msgText">xxxx</div></div><div class="alert alert-warning alert-dismissible" role="alert"><buttontype="button"class="close"data-dismiss="alert"aria-label="Close"><span aria-hidden="true">&times;</span></button><div class="msgText">xxxx</div></div><div class="alert alert-info alert-dismissible" role="alert"><buttontype="button"class="close"data-dismiss="alert"aria-label="Close"><span aria-hidden="true">&times;</span></button><div class="msgText">xxxx</div></div></div><!-- 模态框 --><divclass="modal fade"id="myModal"tabindex="-1"aria-labelledby="myModalLabel"aria-hidden="true"><div class="modal-dialog"><div class="modal-content"><div class="modal-header"><h5 class="modal-title" id="myModalLabel">温馨提示</h5><buttontype="button"class="close"data-dismiss="modal"aria-label="Close"><span aria-hidden="true">&times;</span></button></div><div class="modal-body">确认要退出吗?</div><div class="modal-footer"><buttontype="button"class="btn btn-secondary"data-dismiss="modal">关闭</button><buttontype="button"class="btn btn-primary"onclick="exit()"data-dismiss="modal">确认退出</button></div></div></div></div></body><script src="./js/my_alert.js"></script><script src="./js/pagination.js"></script><script src="./js/pagesManage.js"></script><script>window.onload = function () {search();};</script>
</html>

pagesManage.js

var allData;
// 搜索所有页面信息(包含父级)
function search() {$.ajax({url: "http://localhost:3000/pages/pages_selectAllWithParent",success: (res) => {allData = res;// console.log(res);let tr = "";res.forEach((element) => {tr += `<tr><td>${element.id}</td><td>${element.pageName}</td><td>${element.pageUrl}</td><td>${element.remark}</td><td>${element.parentName}</td><td><button class="btn btn-info mr-2" οnclick="">编辑</button><button class="btn btn-danger mr-2" οnclick="">删除</button></td></tr>`;});$(".tShow").html(tr);// 展示页码showLi();// 默认选择第一页choosePage(1);},});
}

pagination.js

let pageSize = 5; // 默认页面条数
let currentPage = 1; // 默认当前页
let pageCount = 0; // 总页数// 改变页面条数
function changePageSize(e) {pageSize = $(e).val();showLi();choosePage(1);
}// 动态展示页数
function showLi() {pageCount =allData.length % pageSize == 0? allData.length / pageSize: Math.floor(allData.length / pageSize) + 1; // allData为所有数据,通过请求获取到$(".pagination").empty();var content = `<li class="page-item leftPage"><a href="javascript:leftPage()" class="page-link">&laquo;</a></li>`;for (let i = 1; i <= pageCount; i++) {content += `<li class="page-item ${currentPage === i ? "active" : ""}"><a href="javascript:choosePage(${i})" class="page-link" >${i}</a></li>`;}content += `<li class="page-item rightPage"><a href="javascript:rightPage()" class="page-link">&raquo;</a></li>`;$(".pagination").html(content);
}// 选择不同的页号展示不同数据
function choosePage(i) {// 移除当前激活的页码样式$(`.page-item.active`).removeClass("active");// 移除当前禁用样式$(`.page-item.disabled`).removeClass("disabled");currentPage = i;console.log(currentPage);// 为新的当前页码添加激活样式$(`.page-item:has(a[href="javascript:choosePage(${i})"])`).addClass("active");var startIndex = (currentPage - 1) * pageSize;var endIndex =currentPage * pageSize < allData.length? currentPage * pageSize - 1: allData.length - 1;var newData = [];for (let i = startIndex; i <= endIndex; i++) {newData.push(allData[i]);showData(newData);}// 获取要更新的标签元素const currentPageDom = document.getElementById("currentPageDom");const totalCountDom = document.getElementById("totalCountDom");// 更新标签内容currentPageDom.textContent = `当前第${currentPage}`;totalCountDom.textContent = `${allData.length}`;
}function showData(data) {$(".tShow").html("");var content = ``;for (let i = 0; i < data.length; i++) {content += `<tr><td>${data[i].id}</td><td>${data[i].pageName}</td><td>${data[i].pageUrl}</td><td>${data[i].remark}</td><td>${data[i].parentName}</td><td><button class="btn btn-info mr-2" οnclick="">编辑</button><button class="btn btn-danger mr-2" οnclick="">删除</button></td></tr>`;}$(".tShow").html(content);
}function leftPage() {if (currentPage > 1) {currentPage--;choosePage(currentPage);// document.querySelector(".rightPage").classList.remove("disabled");$(".rightPage").removeClass("disabled");}if (currentPage == 1) {// document.querySelector(".leftPage").classList.add("disabled");$(".leftPage").addClass("disabled");}
}function rightPage() {console.log(pageCount, "pageCount");if (currentPage < pageCount) {currentPage++;choosePage(currentPage);// document.querySelector(".leftPage").classList.remove("disabled");$(".leftPage").removeClass("disabled");}if (currentPage == pageCount) {// document.querySelector(".rightPage").classList.add("disabled");$(".rightPage").addClass("disabled");}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://xiahunao.cn/news/2805221.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

浅析SpringBoot框架常见未授权访问漏洞

文章目录 前言Swagger未授权访问RESTful API 设计风格swagger-ui 未授权访问swagger 接口批量探测 Springboot Actuator未授权访问数据利用未授权访问防御手段漏洞自动化检测工具 CVE-2022-22947 RCE漏洞原理分析与复现漏洞自动化利用工具 其他常见未授权访问Druid未授权访问漏…

selenium自动化测试如何定位一闪而过的元素,比如提示信息、提交按钮

这里以登录按钮为例 在当前页面按F12点击控制,在下方输入debugger&#xff0c;点击登录按钮后点击输入debugger的地方按回车&#xff0c;一闪而过的元素就会定住不动就可以定位了

谈谈对BFC的理解

文章目录 一、是什么二、触发条件三、应用场景防止margin重叠&#xff08;塌陷&#xff09;清除内部浮动自适应多栏布局小结 参考文献 一、是什么 我们在页面布局的时候&#xff0c;经常出现以下情况&#xff1a; 这个元素高度怎么没了&#xff1f;这两栏布局怎么没法自适应&…

基于Tomcat+MySQL+JAVA开发的酒店管理信息系统(无须Eclipse直接可在Tomcat中运行)

基于TomcatMySQLJAVA开发的酒店管理信息系统 项目介绍&#x1f481;&#x1f3fb; 介绍思路 1 《酒店管理系统》 资源目录介绍 2 安装配置 1&#xff09;前期准备 a、安装好MySQL数据库&#xff0c;用户名root&#xff0c;密码root b、安装配置java环境&#xff08;JDK1.7&…

【MySQL】数据类型(常见类型)-- 详解

一、数据类型分类 二、数值类型 1、tinyint 类型 在 MySQL 中&#xff0c;整型可以指定是有符号的和无符号的&#xff0c;默认是有符号的。 有符号&#xff1a; 插入数据越界测试&#xff1a; 在 MySQL 表中建立属性列时&#xff0c;我们可以发现列名称在前&#xff0c;类型在…

NXP实战笔记(九):S32K3xx基于RTD-SDK在S32DS上配置 CRCIRQPower

目录 1、CRC概述 1.1、CRC配置 1.2、代码示例 2、INTCTRL 3、Power 1、CRC概述 硬件CRC产生16或者32bit的&#xff0c;S32K3提供了可编程多项式与其他参数需求。 CRC图示如下 1.1、CRC配置 暂时DMA不怎么会用&#xff0c;所以没有启用DMA CRC的选择 这点需要十分注意&…

在Ubuntu系统下搭建TDengine集群

目录 一、Ubuntu虚拟机创建 二、系统相关配置 1、设置系统hostname 2、网络配置及IP规划 3、配置FQDN&#xff08;etc/hosts&#xff09; 4、服务端口设置 三、TDengine server安装 1、服务安装 2、修改配置 3、启动taosd 4、服务卸载 四、客户端安装 1、client安…

(HAL)STM32F103C8T6——RC522与主机进行SPI通信(RFID门禁系统入门必备)

目录 一、MFRC522简介 二、接线 三、存储结构说明 四、代码解析 1、rc522.h 2、rc522.c 3、spi.h 4、spi.c 5、main.c 一、MFRC522简介 店家提供的资料&#xff1a; 链接&#xff1a; 百度网盘 请输入提取码 提取码&#xff1a;su3m 简言之&#xff0c;MFRCC522是基于…

代码随想录刷题笔记-Day22

1. 修剪二叉搜索树 669. 修剪二叉搜索树https://leetcode.cn/problems/trim-a-binary-search-tree/ 给你二叉搜索树的根节点 root &#xff0c;同时给定最小边界low 和最大边界 high。通过修剪二叉搜索树&#xff0c;使得所有节点的值在[low, high]中。修剪树 不应该 改变保留…

【Flink精讲】Flink任务调度机制

Graph 的概念 Flink 中的执行图可以分成四层&#xff1a; StreamGraph -> JobGraph -> ExecutionGraph -> 物理执 行图。 StreamGraph&#xff1a;是根据用户通过 Stream API 编写的代码生成的最初的图。用来表示程序的拓扑结构。JobGraph&#xff1a; StreamGraph …

“IT行业职业发展的黄金之路:哪些证书能为你增光添彩?“

文章目录 每日一句正能量前言1、浙大计算机程序设计能力考试证书&#xff08;PAT&#xff09;2、全国计算机等级考试证书(NCRE)3、计算机技术与软件专业资格考试证书&#xff08;软考&#xff09;4、通信专业技术人员职业水平证书5、全国计算机应用水平考试证书&#xff08;NIT…

IDEA生成Java Doc帮助文档

使用场景 使用IDEA&#xff08;本次使用2020.3版&#xff09;将自己写的常用的工具类打成jar包&#xff0c;安装到maven本地仓库&#xff0c;最后生成对应的doc参考文档。 操作流程 方法一 选中项目 右键 show in Explor&#xff0c;如下图&#xff1a; 选中地址栏 cmd 输入…

Studio One 6 for Mac v6.5.1激活破解版(音乐制作工具)

Studio One是一款专业的音乐制作软件&#xff0c;由美国PreSonus公司开发。该软件提供了全面的音频编辑和混音功能&#xff0c;包括录制、编曲、合成、采样等多种工具&#xff0c;可用于制作各种类型的音乐&#xff0c;如流行音乐、电子音乐、摇滚乐等。 Studio One 6是一款功…

通俗易懂理解GhostNetV2轻量级神经网络模型

一、参考资料 原始论文&#xff1a;[1] NeurIPS22 Spotlight | 已开源 | 华为GhostNetV2&#xff1a;端侧小模型性能新SOTA 二、术语解析 廉价的线性变换/线性运算&#xff1a;cheap linear operations&#xff1b; 线性变换的线性内核&#xff1a;linear kernels&#xf…

[极客挑战2019]HTTP

这道题考察的是http请求头字段的含义和使用&#xff1b; 具体如下 Referer:来源地址 User-Agent:客户端配置信息&#xff1a;浏览器类型、版本、系统类型等 X-Forwarded-For:代理地址&#xff0c;即数据发出的地址 开始解题&#xff1a;&#xff08;对我这初学者真的烧脑&a…

基于DPU和HADOS-RACE加速Spark 3.x

背景简介 Apache Spark&#xff08;下文简称Spark&#xff09;是一种开源集群计算引擎&#xff0c;支持批/流计算、SQL分析、机器学习、图计算等计算范式&#xff0c;以其强大的容错能力、可扩展性、函数式API、多语言支持&#xff08;SQL、Python、Java、Scala、R&#xff09…

使用向量数据库pinecone构建应用04:混合搜索 Hybrid Search

Building Applications with Vector Databases 下面是这门课的学习笔记&#xff1a;https://www.deeplearning.ai/short-courses/building-applications-vector-databases/ Learn to create six exciting applications of vector databases and implement them using Pinecon…

番外篇 | YOLOv5+DeepSort实现行人目标跟踪检测

前言:Hello大家好,我是小哥谈。DeepSort是一种用于目标跟踪的深度学习算法。它结合了目标检测和目标跟踪的技术,能够在视频中准确地跟踪多个目标,并为每个目标分配一个唯一的ID。DeepSort的核心思想是将目标检测和目标跟踪两个任务进行联合训练,以提高跟踪的准确性和稳定性…

基于SVM的功率分类,基于支持向量机SVM的功率分类识别,Libsvm工具箱详解

目录 支持向量机SVM的详细原理 SVM的定义 SVM理论 Libsvm工具箱详解 简介 参数说明 易错及常见问题 完整代码和数据下载链接:基于SVM的功率分类,基于支持向量机SVM的功率分类识别资源-CSDN文库 https://download.csdn.net/download/abc991835105/88862836 SVM应用实例, 基于…

自动化超级英雄:码垛机器人在智能生产线中的角色与挑战

在当代工业生产中&#xff0c;自动化技术的进步促使了一系列智能化设备的发展和应用&#xff0c;其中码垛机器人便是一个典型的代表。码垛机器人主要指用于实现物品自动堆叠、搬运和整理的工业机器人&#xff0c;其集成了机械工程、电子技术和计算机编程等多学科领域的最新研究…