一、概述

首先,我们要明确为何需要分页技术,主要原因有以下:

1、分页可以提高客户体验度,适当地选择合适的数据条数,让页面显得更有条理,使得用户体验感良好,避免过多数据的冗余。

2、提高性能的需要。

为何需要搜索技术,主要原因有以下:

1、搜索功能,能准确的根据用户的关键字找到对应的例子,能更快速高效的找到自己需要的东西。

2、能够进行列表检索筛选。

二、分页技术的实现过程

1.HTML代码:

  1. <!DOCTYPE html>
  2. <html>
  3.  
  4. <head>
  5. <meta charset="UTF-8">
  6. <title>骑马行天下demo</title>
  7. <link rel="stylesheet" href="css/reset.css" />
  8. <link rel="stylesheet" href="css/index.css" />
  9. <script src="js/jquery-3.3.1.min.js"></script>
  10. </head>
  11.  
  12. <body>
  13.  
  14. <!--库存管理-首页-->
  15. <div class="rg-stock-manage">
  16. <div class="stock-manage-top" id="stockbacktop">
  17. <div class="manage-top-right">
  18. <div class="manage-search" style="display: none;">
  19. <img src="img/search.png" />
  20. <input type="text" id="stock-searchlist" placeholder="2018-09-07"/>
  21. </div>
  22. <a>
  23. <input class="gopurchase" type="button" value="去采购"/>
  24. </a>
  25. <select id="payChanges" onchange="payChange()">
  26. <option value="">全部</option>
  27. <option value="已支付">已支付</option>
  28. <option value="待付款">待付款</option>
  29. </select>
  30. </div>
  31. </div>
  32. <div class="stork-manage-card">
  33. <ul id="txt-list">
  34. <!--库存管理列表-->
  35. </ul>
  36. </div>
  37. <div class="stock-manage-bottom">
  38. <div class="manage-bottom-right" id="stockbarcon">
  39. <!--分页按钮模块-->
  40. </div>
  41. </div>
  42. </div>
  43.  
  44. </body>
  45.  
  46. </html>

2.js代码:

采用的的ajax连接的接口进行列表数据渲染,具体写法请查看博主一篇专门写ajax的博文;

  1. $.ajax({
  2.  
  3. url:"https://www.xxxx.cn/xxxxxx/xxxorders/",//查询订单接口
  4. data: UserID,
  5. type:"get",
  6. success:function(data){
  7. var order = JSON.parse(data).orderdetail;
  8. var str = "";
  9. $(function(){
  10. goPage(1,10);//分页(第几页,总页数)
  11. })
  12. //库存管理
  13. $("#txt-list").empty();
  14. .........
  15. }
    })

分页功能采用的js代码如下:

  1. function goPage(pno, psize) {
  2. var itable = document.getElementById("txt-list");
  3. var li = itable.getElementsByTagName('li');
  4. var num = li.length; //表格所有行数(所有记录数)
  5. var totalPage = 0; //总页数
  6. var pageSize = psize; //每页显示行数
  7. //总共分几页
  8. if (num / pageSize > parseInt(num / pageSize)) {
  9. totalPage = parseInt(num / pageSize) + 1;
  10. } else {
  11. totalPage = parseInt(num / pageSize);
  12. }
  13. var currentPage = pno; //当前页数
  14. var startRow = (currentPage - 1) * pageSize + 1; //开始显示的行
  15. var endRow = currentPage * pageSize; //结束显示的行
  16. endRow = (endRow > num) ? num : endRow;
  17. //遍历显示数据实现分页
  18. for (var i = 1; i < (num + 1); i++) {
  19. var irow = li[i - 1];
  20. if (i >= startRow && i <= endRow) {
  21. irow.style.display = "block";
  22. } else {
  23. irow.style.display = "none";
  24. }
  25. }
  26.  
  27. var tempStr ="";
  28. if (currentPage > 1) {
  29. tempStr += "<a href=\"#stockbacktop\" class=\"a2\" onClick=\"goPage(" + (1) + "," + psize + ")\" class=\"paq-sy\">";
  30. tempStr += "<input class=\"homepagea\" type=\"button\" value=\"首页\"/>";
  31. tempStr += "</a>";
  32. tempStr += "<a href=\"#stockbacktop\" class=\"a3\" onClick=\"goPage(" + (currentPage - 1) + "," + psize + ")\">";
  33. tempStr += "<input class=\"toppages\" type=\"button\" value=\"上一页\"/>";
  34. tempStr += "</a>";
  35. tempStr += "<div class=\"somepages\">";
  36. tempStr += "<span class=\"s1\">"+currentPage+"</span>";
  37. tempStr += "<span class=\"s2\">&nbsp;/&nbsp;</span>";
  38. tempStr += "<span class=\"s3\">"+totalPage+"</span>";
  39. tempStr += "</div>";
  40. } else {
  41. tempStr += "<a href=\"#stockbacktop\" class=\"a2\">";
  42. tempStr += "<input class=\"homepagea\" type=\"button\" value=\"首页\"/>";
  43. tempStr += "</a>";
  44. tempStr += "<a href=\"#stockbacktop\" class=\"a3\">";
  45. tempStr += "<input class=\"toppages\" type=\"button\" value=\"上一页\"/>";
  46. tempStr += "</a>";
  47. tempStr += "<div class=\"somepages\">";
  48. tempStr += "<span class=\"s1\">"+currentPage+"</span>";
  49. tempStr += "<span class=\"s2\">&nbsp;/&nbsp;</span>";
  50. tempStr += "<span class=\"s3\">"+totalPage+"</span>";
  51. tempStr += "</div>";
  52. }
  53.  
  54. if (currentPage < totalPage) {
  55. tempStr += "<a href=\"#stockbacktop\" class=\"a4\" onClick=\"goPage(" + (currentPage + 1) + "," + psize + ")\">";
  56. tempStr += "<input class=\"downpages\" type=\"button\" value=\"下一页\"/>";
  57. tempStr += "</a>";
  58. tempStr += "<a href=\"#stockbacktop\" class=\"a5\" onClick=\"goPage(" + (totalPage) + "," + psize + ")\">";
  59. tempStr += "<input class=\"endpagesz\" type=\"button\" value=\"尾页\"/>";
  60. tempStr += "</a>";
  61. } else {
  62. tempStr += "<a href=\"#stockbacktop\" class=\"a4\">";
  63. tempStr += "<input class=\"downpages\" type=\"button\" value=\"下一页\"/>";
  64. tempStr += "</a>";
  65. tempStr += "<a href=\"#stockbacktop\" class=\"a5\">";
  66. tempStr += "<input class=\"endpagesz\" type=\"button\" value=\"尾页\"/>";
  67. tempStr += "</a>";
  68. }
  69.  
  70. document.getElementById("stockbarcon").innerHTML = tempStr;
  71. }

三.搜索功能实现

搜索功能有以下两种实现方法:

1.输入框搜索法:

根据输入框输入的内容文字,在ul列表里面进行检索,显示出有关键字的那条或多条信息;

  1. //库存管理搜索
  2. $(function(){
  3.  
  4. $("#stock-searchlist").bind('input propertychange', function() {
  5. var insertVal = $(this).val();
  6. $("#txt-list li").each(function() {
  7. var paratime = $(this).children(".stork-card-top").children(".stork-card-top-con").children(".p2").children("span").html();
  8. if(paratime.indexOf(insertVal) < 0) {
  9. $(this).hide();
  10. $("#stock-searchlist").bind('propertychange input',function () {
  11. var intVal = $(this).val();
  12. if(intVal.length<=0){
  13. window.location.reload();
  14. }
  15. });
  16. } else {
  17. $(this).show();
  18. }
  19. });
  20. });
  21.  
  22. })

2.下拉列表筛选法:

根据下拉列表进行内容进行筛选,显示出有关键字的那条或多条信息;

  1. // 数据筛选
  2. function payChange() {
  3. $("ul li").hide().filter(":contains('"+($("#payChanges").val())+"')").show();
  4.  
  5. }

四.总结

项目中经常要用到分页和搜索功能,希望对大家有所帮助,有什么更好的方法欢迎在下面留言,共同进步。。。

原生javascript实现分页效果+搜索功能的更多相关文章

  1. 纯原生javascript实现分页效果

    随着近几年前端行业的迅猛发展,各种层出不穷的新框架,新方法让我们有点眼花缭乱. 最近刚好比较清闲,所以没事准备撸撸前端的根基javascript,纯属练练手,写个分页,顺便跟大家分享一下 functi ...

  2. 原生JS实现分页效果2.0(新增了上一页和下一页,添加当前元素样式)

    虽然写的很烂,但至少全部都是自己写的,因为这个没有固定的顺序,所以就没有封装,如果你技术好的话,可以你写的分享给我,谢谢. <!DOCTYPE html><html lang=&qu ...

  3. 原生JS实现分页效果1.0

    不太完整,写的太急,等等加上完整注释,写起来还是有些难度的,写的有点水,后面再改进改进. <!DOCTYPE html><html lang="en">&l ...

  4. Vue下简单分页及搜索功能

    最近利用Vue和element ui仿写了个小页面,记一哈分页和搜索功能的简单实现. 首页   emmmm..... 搜索框输入..... 搜索完成 数据是直接写在这里面的: cardPhoto:[ ...

  5. 原生js显示分页效果

    <!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8&quo ...

  6. 原生JavaScript实现新手引导效果(第二个玩具)

    慕课地址https://www.imooc.com/video/169 预览效果: <!DOCTYPE html> <html> <head> <meta c ...

  7. 使用JavaScript实现分页效果

    应公司需求,有时需要制作静态页面网站,而一旦涉及到文章的分页,实现起来非常麻烦,自己又刚入门,对js不是很熟悉,所以就拿来练练手. 首先页面结构如下,分别展示数据跟分页: <!DOCTYPE h ...

  8. 原生js实现分页效果(带实例)

    小小插件(静态分页) 效果图: 首先实现简单功能: <!DOCTYPE html> <html> <head> <meta http-equiv=" ...

  9. Javascript之简单按钮搜索功能

    学习JavaScript我觉得真实的感觉就是可以任意设计,“没有做不到只有想不到!”即使简单,但是任何东西的复杂都是从简单.基础开始的!这是我自己做的一个超简单的"搜索引擎"按钮, ...

随机推荐

  1. 搭建 .NET Core 开发环境

    安装 .Net Core 执行代码 任务时间:时间未知 .NET Core 的官方文档很详细,本实验带你建立一个.NET Core 1.1的Web运行环境,更多内容可以可以查阅微软官方文档. 安装 . ...

  2. .Net C# 阿拉伯数字转为中文金额数字

    一个练习,将阿拉伯数字转为中文金额数字,针对包含整数的金额有问题 代码: public string ReturnStr(string inputNum) { ", }; string[] ...

  3. 利用反射(Reflection)处理对象

    创建一个学生类: public class Student { public int Id { set; get; } public string Name { set; get; } public ...

  4. django def validate_column和validate

    VIewDemo class RegUserSet(mixins.CreateModelMixin,viewsets.GenericViewSet): serializer_class = RegUs ...

  5. vsftp -samba-autofs

    摘要: 1.FTP文件传输协议,PAM可插拔认证模块,TFTP简单文件传输协议. 注意:iptables防火墙管理工具默认禁止了FTP传输协议的端口号 2.vsftpd服务程序三种认证模式?三种认证模 ...

  6. ActionBarSherlock(一)在Eclipse中如何引入ActionBarSherlock和它的例子?

    ActionBarSherlock,是一个开源的Actionbar项目(http://actionbarsherlock.com/download.html).为什么我们要用它呢?谷歌已经不强制要求厂 ...

  7. Android性能测试-内存

    前言: 近阶段都在探索android性能测试方面的东西,其中一个很重要的指标就是内存.对于内存,主要是一些gc是不是及时,或者说一些引用有没有及时释放,有没有导致oom或者内存持续增加导致卡顿,有没有 ...

  8. 深入了解java虚拟机(JVM) 第八章 常见的jvm调优策略

    一般来说,jvm的调优策略是没有一种固定的方法,只有依靠我们的知识和经验来对项目中出现的问题进行分析,正如吉德林法则那样当你已经把问题清楚写出来,就已经解决了一半.虽然JVM调优中没有固定的策略,但是 ...

  9. Windows server 2008启动remote dosktop services服务报错1079

    原创 欢迎转载,届时请注明出处 报错场景 今天,刚开始启动win server的远程连接服务(remote desktop services)时 该服务可以正常启动,然后选择了  “计算机--> ...

  10. form-inline+form-group 实现表单横排显示(Bootstrap)

    运行后的效果如下: 使用时要注意如下: 如果form元素有form-line修饰,那么form-group 所修饰的元素内部只能包含一个元素,否则,不会达到预期效果