js分页功能

先声明些全局变量方便我们在下面的代码中使用

//一页有多少条数据
let num = 10;
//页码
let k = 0;
//总页数
let divide;
// 用来判断显示哪几页的页数
let page_num = 0;
// 声明一个用于接数据的变量
let datas;
// 声明一个用于接数据的变量
let data;
//一页有多少条数据
let num = 10;
//获取数据
let res;
//下标
let k = 0;
//总页数
let divide;
//获取元素
let nums;

通过获取数据渲染页面

// 渲染函数 
function applys(data) {// 循环字符串拼接渲染let str = ``;for (let i = k * num; i < (k + 1) * num; i++) {if (data[i] == undefined) break;str += `<div class="title" data-index="${data[i].id}"><div class="id">${data[i].id}</div><div class="industry" title="${data[i].name}" >${data[i].name}</div><div class="operatetime">${data[i].money}</div><div class="industry"  >${data[i].setmeal == 1 ? '三天' : data[i].setmeal == 2 ? '七天' : data[i].setmeal == 3 ? '一个月' : data[i].setmeal == 4 ? '三个月' : data[i].setmeal == 5 ? '半年' : data[i].setmeal == 6 ? '一年' : data[i].setmeal == 7 ? '三年' : '五年'}</div><div class="demand"><img src="${dns + data[i].img}" alt="" onclick="photograph(${i})"></div><div class="industry" title="${data[i].status}" ><input class="bs_switch" id="bs_switch" onchange="support(${data[i].id},${data[i].status},${i})" type="checkbox"  ${data[i].status == 2 ? 'checked' : ''}></div><div class="operatedate" title="${data[i].addtime}">${data[i].addtime}</div><div class="Addanewlevel"> <div class="editbox" onclick="redact(${data[i].id},${[i]})"> <div>编辑</div></div><div class="delete-loser" onclick="deletes(${data[i].id})"><div>删除</div></div></div></div>`;}pagenumber(data);$('#content').html(str);// 获取页数nums = document.getElementsByClassName('paging_noclick ');
}

渲染数据里面调用的函数是页码的函数

function pagenumber(data) {let tri = ``;tri += `<div class="data-count">共 ${data.length} 条</div>`;tri += `<select id="show" value="${num}" onchange="selects()"><option ${num == 10 ? 'selected' : ''} class="option" value="10">10条/页</option><option ${num == 20 ? 'selected' : ''} class="option" value="20">20条/页</option><option ${num == 50 ? 'selected' : ''} class="option" value="50">50条/页</option></select>  <div class="paging_Previous" id="up" onclick="ups()"><img src="./img/lefte.png" alt="" /></div>`;// 获取总页数divide = Math.ceil(data.length / num);// 总页数小于6,执行if的内容,大于6执行elseif (divide < 6) {for (let j = 0; j < divide; j++) {tri +=`<div class="paging_noclick" onclick="sort(${j})" ${k == j ? 'style="color:#0c66ff;"' : '""'}>${j + 1}</div>`;}} else {// 判断显示哪几页的页数if (k < 3) {page_num = 0;} else if (k > divide - 4) {page_num = divide - 5;tri +=`<div class="paging_noclick" onclick="sort(${0})" ${k == 0 ? 'style="color:#0c66ff;"' : '""'}>${1}</div>...`;} else {page_num = k - 2;tri +=`<div class="paging_noclick" onclick="sort(${0})" ${k == 0 ? 'style="color:#0c66ff;"' : '""'}>${1}</div>...`;}for (let j = 0; j < page_num + 5; j++) {tri +=`<div class="paging_noclick" onclick="sort(${j})" ${k == j ? 'style="color:#0c66ff;"' : '""'}>${j + 1}</div>`;}// 用来判断是否添加省略号if (k < 3) {sti +=`...<div class="paging_noclick" onclick="sort(${divide - 1})" ${k == divide - 1 ? 'style="color:#0c66ff;";' : '"'}>${divide}</div>`;} else if (k <= divide - 4){sti +=`...<div class="paging_noclick" onclick="sort(${divide - 1})" ${k == divide - 1 ? 'style="color:#0c66ff;";' : '"'}>${divide}</div>`;}}tri += `<div class="paging_Previous" id="bottom" onclick="bottoms()"><img src="./img/righte.png" alt="" /></div>`;tri +=`<div>前往<input type="text" class="inputs" placeholder="请输入页码" onkeyup="if(event.keyCode==13){seach()}">页</div>`;$('#paging').html(tri);}

然后是搜索页码,调用数据渲染函数,改变页码的高亮显示,改变分页渲染的内容

// 分页内容搜索function seach() {// 获取输入框的值let input = document.querySelector('.inputs').value;// 转换输入值为整数let pageNumber = parseInt(input, 10);// 验证输入值if (isNaN(pageNumber) || pageNumber < 1 || pageNumber > divide) {// 弹出警告提示// 显示超出限制的提示tooltip.innerHTML = `超出页面范围`;//修改弹出窗的样式tooltip.style = "display:block;";$('.inputs').val('');setTimeout(function() {tooltip.style = "display:none";}, 2000);} else {// 更新当前页码k = pageNumber - 1;// 调用 apply 函数更新分页内容applys(res);}}

点击左箭头图片,调用数据渲染函数,显示上一页页码的高亮,改变页面渲染的数据

	//上一页function ups() {//k大于0if (k > 0) {//每次点击-1k--;//调用渲染applys(res);}}

点击右箭头图片,调用数据渲染函数,显示上一页页码的高亮,改变页面渲染的数据

//下一页function bottoms() {//k小于总页数-1if (k < divide - 1) {//每次点击加1k++;}//调用渲染函数applys(res);}

选择下拉框的选项,设置选择的选项为选中状态,获取选择的选项的value赋值给全局数量的变量,然后调用渲染函数改变页面渲染数据的数量,总页数也会根据每页显示的条数进行改变

// 改变每页渲染的数据条数function selects() {// 获取下拉框的value let value = $('#show').val();// 获取下拉框let show = $('#show');// 获取下拉框的子级let option = $('.option');// 循环判断option是否是点击的for (let i = 0; i < option.length; i++) {// 如果是点击的让的选中状态为true,否则为falseif (option[i].value == value) {option[i].selected = true;} else {option[i].selected = false;}}// 让每页的数据等于下拉框的value值num = value;// 重新计算总页数divide = Math.ceil(res.length / num);if (k > divide - 1) {k = divide - 1;}// 调用渲染函数applys(datas);}

点击页码, 让页数的全局变量等于点击的页数,调用渲染显示点击的页码高亮,改变页码渲染的数据

// 点击切换页面数据事件function sort(j) {// 让页数调用点击的页数k = j;// 调用渲染函数applys(datas);}

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

CMake Do‘s and Don‘ts (行为准则)

CMake Dos and Donts {行为准则} 1. General2. Modules3. ProjectsReferences Effective Modern CMake https://gist.github.com/mbinna/c61dbb39bca0e4fb7d1f73b0d66a4fd1 Do’s and Don’ts https://cliutils.gitlab.io/modern-cmake/chapters/intro/dodonot.html dos and …

验证的分类及相关工具

目录 1.验证方法的分类1.1动态验证1.2.静态验证 2.动态验证及相关工具2.1.电路级仿真工具2.2.逻辑仿真工具 3.静态验证及相关工具3.1 形式验证工具3.2 静态时序分析工具 SOC设计中验证包含以下几个方面&#xff1a; 验证原始描述的正确性验证设计的逻辑功能是否符合设计规范的要…

【HarmonyOs学习日志(14)】计算机网络之域名系统DNS

域名系统DNS 域名系统DNS——从域名解析出IP地址 文章目录 域名系统DNS概述域名到IP地址的解析 互联网的域名结构命名标准 域名服务器域名的解析过程 概述 域名系统DNS&#xff08;Domain Name System&#xff09;是互联网使用的命名系统&#xff0c;用来把便于人们使用的机器…

【Python】pandas库---数据分析

大学毕业那年&#xff0c;你成了社会底层群众里&#xff0c;受教育程度最高的一批人。 前言 这是我自己学习Python的第四篇博客总结。后期我会继续把Python学习笔记开源至博客上。 上一期笔记有关Python的NumPy数据分析&#xff0c;没看过的同学可以去看看&#xff1a;【Pyt…

【人工智能学习之HDGCN18关键点修改】

【人工智能学习之HDGCN18关键点修改】 训练部分修改部分 训练部分 请参考文章&#xff1a;【人工智能学习之HDGCN训练自己的数据集】 修改部分 参考源码中25关键点的区域划分&#xff0c;我们将18关键点划分为&#xff1a; 头部&#xff1a; 鼻子左眼和左耳右眼和右耳 上肢…

ARCGIS国土超级工具集1.2更新说明

ARCGIS国土超级工具集V1.2版本&#xff0c;功能已增加至47 个。在V1.1的基础上修复了若干使用时发现的BUG&#xff0c;新增了"矢量分割工具"菜单&#xff0c;同时增加及更新了了若干功能&#xff0c;新工具使用说明如下&#xff1a; 一、勘测定界工具栏更新界址点成果…

华为OD --- 流浪地球

华为OD --- 流浪地球 题目独立实现基本思路代码实现 其他答案实现思路代码实现 题目 独立实现 基本思路 1、首先把题目给出的启动机器初始化成数组, 2、用for循环模拟每隔1s更新这个初始化数组的前后两个机器. (源码中的updateTimeCount函数) 3、for循环每次循环后会检查当前…

DataOps驱动数据集成创新:Apache DolphinScheduler SeaTunnel on Amazon Web Services

引言 在数字化转型的浪潮中&#xff0c;数据已成为企业最宝贵的资产之一。DataOps作为一种文化、流程和实践的集合&#xff0c;旨在提高数据管道的质量和效率&#xff0c;从而加速数据从源头到消费的过程。白鲸开源科技&#xff0c;作为DataOps领域的领先开源原生公司&#xf…

【硬件IIC】stm32单片机利用硬件IIC驱动OLED屏幕

之前操作OLED屏幕都是用GPIO模拟IIC去驱动&#xff0c;最近打算用硬件IIC去驱动&#xff0c;于是写下这个demo,在这个过程中遇到一点小坑&#xff0c;记录一下&#xff0c;本文章非小白教程&#xff0c;所以只突出踩到的坑点&#xff0c;文章中涉及到的OLED也是网上资料写烂的&…

python如何自动加空格

首先&#xff0c;需要进行打开的一个pycharm的软件&#xff0c;可进行双击的打开该软件。 可以看到的是在当前的打开的文件中&#xff0c;格式相对较乱一下。格式不对会格式错误。 然后点击菜单栏中的“code”。 在弹出的下拉菜单中选择“reformat code”选项。 可以看到的是在…

【开源免费】基于SpringBoot+Vue.JS网上订餐系统(JAVA毕业设计)

本文项目编号 T 018 &#xff0c;文末自助获取源码 \color{red}{T018&#xff0c;文末自助获取源码} T018&#xff0c;文末自助获取源码 目录 一、系统介绍二、演示录屏三、启动教程四、功能截图五、文案资料5.1 选题背景5.2 国内外研究现状5.3 可行性分析 六、核心代码6.1 新…

串口通信和SPI通信详解

0、背景 在现代嵌入式系统中&#xff0c;通信是不同模块之间交换数据的核心。串口通信和 SPI&#xff08;串行外设接口&#xff09;是两种常见的通信方式&#xff0c;它们各自有独特的优势和适用场景。 1、串口通信 1.1、串口通信概念 串口通信是一种常见的异步串行通信协议…

javase-17、API.数学相关

一、Math类 Math类提供了大量的静态方法来便于我们实现数学计算&#xff0c;如求绝对值、取最大或最小值等。 https://doc.qzxdp.cn/jdk/17/zh/api/java.base/java/lang/Math.html 所在模块&#xff1a;java.base所在包&#xff1a; java.lang static double abs(double a)…

答题考试系统v1.6.1高级版源码分享+uniapp+搭建测试环境

一.系统介绍 一款基于FastAdminThinkPHPUniapp开发的小程序答题考试系统&#xff0c;支持多种试题类型、多种试题难度、练题、考试、补考模式&#xff0c;提供全部前后台无加密源代码&#xff0c;支持私有化部署 二.测试环境 系统环境&#xff1a;CentOS、 运行环境&#x…

浅谈仓颉语言的优劣

仓颉语言&#xff0c;作为华为自研的新一代编程语言&#xff0c;以其高效、安全、现代化的特点&#xff0c;引起了广泛的关注。 仓颉语言的优势 高效并发 仓颉语言的一大亮点是其轻松并发的能力。它实现了轻量化用户态线程和并发对象库&#xff0c;使得高效并发变得轻松。仓颉…

Sass系统数据隔离的三种方式

1.完全独立的数据库 为每一个租户单独部署一个数据库 优点&#xff1a;达到了真正的按租户进行隔离&#xff0c;不同租户之间相互没有影响&#xff0c;可以针对一些特殊租户例如大客户做一些定制化的开发&#xff0c;计费相对简单&#xff0c;按照资源使用进行计费。 缺点&…

FFmpeg 主要结构体剖析

FFmpeg 探索之旅 FFmpeg 主要结构体剖析 FFmpeg 探索之旅前言1、AVFormatContext2、AVCodecContext3、AVCodec4、AVStream5、AVPacket6、AVFrame7、AVCodecParameters7、SwsContext8、AVIOContext9、AVRational 总结 前言 嘿&#xff0c;各位小伙伴&#xff01;在如今这个多媒…

经典电荷泵/Charge pump——1998.JSSC

电路结构 工作原理 M3 and M4 are the series switches, and M5, M6 switch to the highest voltage. If M5 and M6 are missing, having a large capacitor is of absolute necessity, because must always stay between 2 Vin and 2Vin - Uj to avoid switching on the vert…

Swin transformer 论文阅读记录 代码分析

该篇文章&#xff0c;是我解析 Swin transformer 论文原理&#xff08;结合pytorch版本代码&#xff09;所记&#xff0c;图片来源于源paper或其他相应博客。 代码也非原始代码&#xff0c;而是从代码里摘出来的片段&#xff0c;配上简单数据&#xff0c;以便理解。 当然&…

GPT-Omni 与 Mini-Omni2:创新与性能的结合

近年来&#xff0c;随着人工智能技术的飞速发展&#xff0c;各种模型和平台应运而生&#xff0c;以满足从个人用户到企业级应用的多样化需求。在这一领域&#xff0c;GPT-Omni 和 Mini-Omni2 是两款备受瞩目的技术产品&#xff0c;它们凭借独特的设计和强大的功能&#xff0c;在…