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.pswp.cn/web/63449.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/63449.shtml
英文地址,請注明出處:http://en.pswp.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;在…