分页之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小时内与您取得联系。