全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

js分页之前端代码实现和请求处理

分页之js前端实现和请求处理代码,供大家参考,具体内容如下

index.html

<!DOCTYPE html>
<html lang="en">
<head>
 <meta charset="UTF-8">
 <title>Document</title>
 <link rel="stylesheet" href="css/public.css" charset='utf-8'>
</head>
<body>
 <div class='box'>
 <h2>
  <span>编号</span>
  <span>姓名</span>
  <span>性别</span>
  <span>分数</span>
 </h2>
 <ul class='con' id='content'>
  <li>
  <span>1</span>
  <span>xxx</span>
  <span>男</span>
  <span>90</span>
  </li>
 </ul>
 <div class='page' id='page'>
  <span>FIRST</span>
  <span>PREV</span>
  <ul class='pageNum' id='pageNum'>
  <li>1</li>
  <li>2</li>
  <li>3</li>
  <li>4</li>
  <li>5</li>
  </ul>
  <span>NEXT</span>
  <span>LAST</span>
  <input type="text" id='numInp' value='1'/>
 </div>
 </div>
 <script src='js/ajax.js'></script>
 <script>
 var pageModule = (function(){
  //获取需要操作的DOM元素
  var content = document.getElementById('content'),
  page = document.getElementById('page'),
  pageNum = document.getElementById('pageNum'),
  numInp = document.getElementById('numInp');

  //设定当前也和总页数及本次请求的数据
  var n = 1,total = 0,data = null;
  //实现页面数据绑定及其他数据的绑定
  function bindHTML(){
  //content bind
  var str = '';
  for(var i = 0;i<data.length;i++){
   var curData = data[i];
   str+='<li studentId="'+curData["id"]+'">';
   str+='<span>'+curData["id"]+'</span>';
   str+='<span>'+curData["name"]+'</span>';
   str+='<span>'+(curData["sex"]==1 ? "女" : "男")+'</span>';
   str+='<span>'+curData["score"]+'</span>';
   str+='</li>';
  }
  content.innerHTML = str;
  //page bind
  str = '';
  for(i = 1;i<=total;i++){
   if(i===n){
   str+='<li class="bg">'+i+'</li>';
   continue;
   }
   str+='<li>'+i+'</li>';
  }
  pageNum.innerHTML = str;

  //numInp bind
  numInp.value = n;

  }
  //事件委托实现分页区域的按钮操作 给文本框enter键绑定操作
  function bindEvent(){
  page.onclick = function(e){
   e = e || window.event;
   var tar = e.target || e.srcElement
   tarTag = tar.tagName.toUpperCase(),
   tarInn = tar.innerHTML;
   if(tarTag==="SPAN"){
   if(tarInn==="FIRST"){
    if(n===1){
    return;
    }
    n = 1;
   }
   if(tarInn==="LAST"){
    if(n === total){
    return;
    }
    n = total;
   }
   if(tarInn==="PREV"){
    if(n === 1){
    return;
    }
    n--;
   }
   if(tarInn==="NEXT"){
    if(n === total){
    return;
    }
    n++;
   }
   }

   if(tarTag==="LI"){
   if(n === parseFloat(tarInn)){
    return;
   }
   n = parseFloat(tarInn);
   }

   //input
   if(tarTag==="INPUT"){
   return;
   }

   //重新发送请求
   sendAJAX()

  }

  numInp.onkeyup = function(e){
   e = e || window.event;
   if(e.keyCode===13){//enter键
   var val = parseFloat(this.value.replace(/^ +| +$/,''));
   if(isNaN(val)){
    this.value = n;
    return;
   }
   val = Math.round(val)
   if(val<1){
    n = 1;
   }else if(val>total){
    n = total;
   }else{
    n = val;
   }
   sendAJAX();

   }
  }
  }
  //content区域的LI跳转事件
  function bindLink(){
  var oLis = content.getElementsByTagName('li');
  for(var i = 0;i<oLis.length;i++){
   oLis[i].onclick = function(){
   // window.location.href = "detail.html";
   //在跳转的时候还需要把当前点击学员得ID传到详情页面
   window.open("detail.html?id="+this.getAttribute('studentId'));
   
   }
  }
  }
  function sendAJAX(){
  ajax({
   url:"/getList?n="+n,
   success:function(jsonData){
   if(jsonData && jsonData.code===0){
    total = jsonData["total"];
    data = jsonData['data'];
    bindHTML();
    bindLink();
   }
   }
  })
  }
  //模块入口
  function init(){
  sendAJAX();
  bindEvent();
  }

  return {
  init:init
  }
 })()

 pageModule.init();
 </script>
</body>
</html>

detail.html

<!DOCTYPE html>
<html lang="en">
<head>
 <meta charset="UTF-8">
 <title>Document</title>
 <link rel="stylesheet" href="css/public.css" charset='utf-8'>
</head>
<body>
 <ul class='box2' id='box2'>
 <li>
  <span>编号</span>
  <span>4</span>
 </li>
 <li>
  <span>姓名</span>
  <span>xxx</span>
 </li>
 <li>
  <span>性别</span>
  <span>男</span>
 </li>
 <li>
  <span>分数</span>
  <span>99</span>
 </li>
 </ul>
 <script src='js/ajax.js'></script>
 <script>
 String.prototype.queryURLParameter = function(){
  //PARAMETER
  var obj = {},
  reg = /([^?=&#]+)=([^?=&#]+)/g;
  this.replace(reg,function(){
  var key = arguments[1],
   value = arguments[2];
  obj[key] = value;
  });
  //->HASH
  // reg = /#([^?=&#]+)/;
  // if (reg.test(this)) {
  // obj['hash'] = reg.exec(this)[1];
  // }
  return obj;
 }
 var detailModuel = (function(){
  var data = null,urlId = window.location.href.queryURLParameter().id,oBox = document.getElementById('box2');
  function bindHTML(){
  var str = "";
  str+="<li><span>编号</span><span>"+data["id"]+"</span></li>";
  str+="<li><span>编号</span><span>"+data["name"]+"</span></li>";
  str+="<li><span>编号</span><span>"+(data["sex"]==1 ? "男" : "女")+"</span></li>";
  str+="<li><span>编号</span><span>"+data["score"]+"</span></li>";
  oBox.innerHTML = str;
  }

  function init(){
  ajax({
   url:"/getInfo?id="+urlId,
   success:function(jsonData){
   if(jsonData && jsonData.code===0){
    data = jsonData["data"];
    bindHTML();
   }
   }
  })
  }

  return {
  init:init
  }
 })()
 detailModuel.init();
 </script>
</body>
</html>

最终效果图:

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。


# js  # 分页  # 前端取消请求及取消重复请求方式  # 前端终止请求的3种方式总结(ajax、axios)  # 前端如何判断多个请求完毕的实战及常见问题  # 绑定  # 跳转  # 要把  # 还需  # 具体内容  # 大家多多  # 文本框  # 及其他  # pageNum  # type  # PREV  # input  # numInp  # text  # script  # id  # content  # ul  # con 


相关文章: 建站之星云端配置指南:模板选择与SEO优化一键生成  中山网站制作网页,中山新生登记系统登记流程?  胶州企业网站制作公司,青岛石头网络科技有限公司怎么样?  图片制作网站免费软件,有没有免费的网站或软件可以将图片批量转为A4大小的pdf?  保定网站制作方案定制,保定招聘的渠道有哪些?找工作的人一般都去哪里看招聘信息?  详解一款开源免费的.NET文档操作组件DocX(.NET组件介绍之一)  如何选择美橙互联多站合一建站方案?  如何制作一个表白网站视频,关于勇敢表白的小标题?  如何用PHP快速搭建高效网站?分步指南  做企业网站制作流程,企业网站制作基本流程有哪些?  北京网站制作费用多少,建立一个公司网站的费用.有哪些部分,分别要多少钱?  如何高效完成自助建站业务培训?  C++ static_cast和dynamic_cast区别_C++静态转换与动态类型安全转换  阿里云高弹*务器配置方案|支持分布式架构与多节点部署  h5在线制作网站电脑版下载,h5网页制作软件?  阿里云网站搭建费用解析:服务器价格与建站成本优化指南  弹幕视频网站制作教程下载,弹幕视频网站是什么意思?  ,网页ppt怎么弄成自己的ppt?  制作假网页,招聘网的薪资待遇,会有靠谱的吗?一面试又各种折扣?  c# await 一个已经完成的Task会发生什么  长沙企业网站制作哪家好,长沙水业集团官方网站?  建站之星CMS五站合一模板配置与SEO优化指南  如何快速搭建二级域名独立网站?  C++用Dijkstra(迪杰斯特拉)算法求最短路径  宝塔建站教程:一键部署配置流程与SEO优化实战指南  实现虚拟支付需哪些建站技术支撑?  唐山网站制作公司有哪些,唐山找工作哪个网站最靠谱?  怎么制作一个起泡网,水泡粪全漏粪育肥舍冬季氨气超过25ppm,可以有哪些措施降低舍内氨气水平?  建站之星导航菜单设置与功能模块配置全攻略  专业制作网站的公司哪家好,建立一个公司网站的费用.有哪些部分,分别要多少钱?  如何在宝塔面板中创建新站点?  北京网站制作公司哪家好一点,北京租房网站有哪些?  如何通过宝塔面板实现本地网站访问?  已有域名如何快速搭建专属网站?  如何通过FTP服务器快速搭建网站?  上海网站制作网站建设公司,建筑电工证网上查询系统入口?  GML (Geography Markup Language)是什么,它如何用XML来表示地理空间信息?  高端建站如何打造兼具美学与转化的品牌官网?  建站为何优先选择香港服务器?  ,有什么在线背英语单词效率比较高的网站?  网站制作需要会哪些技术,建立一个网站要花费多少?  XML的“混合内容”是什么 怎么用DTD或XSD定义  建站VPS推荐:2025年高性能服务器配置指南  西安制作网站公司有哪些,西安货运司机用的最多的app或者网站是什么?  如何选择适合PHP云建站的开源框架?  如何在万网自助建站平台快速创建网站?  建站主机空间推荐 高性价比配置与快速部署方案解析  微信推文制作网站有哪些,怎么做微信推文,急?  制作网站的基本流程,设计网站的软件是什么?  如何通过云梦建站系统实现SEO快速优化? 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。