<!DOCTYPE html>

<html lang="en">

<head>

<meta charset="UTF-8">

<title>Document</title>

<script>

//创建xhr对象

function XHR(){

var xhr;

if(window.XMLHttpRequest){// ie7+   火狐  谷歌

xhr=new XMLHttpRequest();

}else{

xhr = new ActiveObject("Microsoft.XMLHTTP");   //ie6

}

return xhr;

}

var pageSize=10;

var index=0;//全局变量

var response;

function uu(){

for(var k=index*pageSize;k<index*pageSize+pageSize;k++){

var tr=document.createElement("tr");

//name

var name=document.createElement("td");

name.innerHTML=response[k].name;

tr.appendChild(name);

//age

var age=document.createElement("td");

age.innerHTML=response[k].age;

tr.appendChild(age);

//sex

var sex=document.createElement("td");

sex.innerHTML=response[k].sex;

tr.appendChild(sex);

//phone

var phone=document.createElement("td");

phone.innerHTML=response[k].phone;

tr.appendChild(phone);

//address

var address=document.createElement("td");

address.innerHTML=response[k].address;

tr.appendChild(address);

//qq

var qq=document.createElement("td");

qq.innerHTML=response[k].qq;

tr.appendChild(qq);

tbody.appendChild(tr);

}

}

window.onload=function(){

var xhr=XHR();

xhr.open("post","person.json",true);

xhr.onreadystatechange=function(){

var box=document.getElementById("box");

var box_span=box.getElementsByTagName("span");

var tbody=document.getElementById("tbody");

var currentPage=document.getElementById("currentPage");

var prev=document.getElementById("prev");

var next=document.getElementById("next");

if(xhr.readyState==4&&xhr.status==200){

response=JSON.parse(xhr.responseText);

//totalPage  总页数=数据的长度/每页显示的记录数

var totalPage=0;

// 每页显示的记录数

var num=response.length;//数据的长度

//totalPage=num/pageSize;

//判断数据长度/每页显示的记录数 如果不能整除时也算一页

if(num/pageSize > parseInt(num/pageSize)){

totalPage=parseInt(num/pageSize)+1;

}else{

totalPage=parseInt(num/pageSize);

}

console.log(totalPage);

//总共页数

var totalPage_a=document.createElement("a");

totalPage_a.innerHTML="总共"+totalPage+"页";

box.appendChild(totalPage_a);

//当前是第1页

var currentPage=document.createElement("a");

currentPage.innerHTML="当前是第1页";

currentPage.id="currentPage";

box.appendChild(currentPage);

//循坏分页  totalPage

for(var i=0;i<totalPage;i++){

var span=document.createElement("span");

span.setAttribute("index",i);

span.innerHTML="第"+(i+1)+"页";

box.appendChild(span);

if(i==0){

span.innerHTML="首页";

span.className="on";

}

if(i==totalPage-1){

span.innerHTML="尾页";

}

}

//上一页

var prev=document.createElement("a");

prev.innerHTML="上一页";

prev.id="prev";

box.appendChild(prev);

//下一页

var next=document.createElement("a");

next.innerHTML="下一页";

next.id="next";

box.appendChild( next);

//对象每页按钮添加事件

for(var j=0;j<box_span.length;j++){

box_span[j].onclick=function(){

index=Number(this.getAttribute("index"));

console.log(index);

tbody.innerHTML=" ";

currentPage.innerHTML="当前是第"+(index+1)+"页";

for(var m=0;m<box_span.length;m++ ){

box_span[m].className="";

}

this.className="on";

uu();

}

}

//点击上一页

prev.onclick=function(){

console.log(index);

if(index>=5){

box_span[index].style.display="none";

//box_span[index].style.display="inline-block";

box_span[index-1].style.display="inline-block";

}

index--;

if(index<=0){

index=0;

}

currentPage.innerHTML="当前是第"+(index+1)+"页";

tbody.innerHTML=" ";

for(var n=0;n<box_span.length;n++){

box_span[n].className="";

}

box_span[index].className="on";

uu();

}

//点击下一页

next.onclick=function(){

index++;

if(index>=totalPage){

index=totalPage-1;

}

currentPage.innerHTML="当前是第"+(index+1)+"页";

tbody.innerHTML=" ";

for(var n=0;n<box_span.length;n++){

box_span[n].className="";

}

box_span[index].className="on";

uu();

// 分页数大于5 页时,对应index的分页显示,它的上一个隐藏

if(index>=5){

box_span[index].style.display="inline-block";

box_span[index-1].style.display="none";

}

}

uu();

}

// 分页数大于5 页时,隐藏5后面的分页,最后一个不隐藏

for(var h=5;h<box_span.length-1;h++){

box_span[h].style.display="none";

}

}

xhr.send();

}

</script>

<style>

*{padding: 0px;margin:0px;}

#box a{margin-left: 10px;}

#box span{margin-left: 10px;}

.on{background-color: red;}

</style>

</head>

<body>

<table border="1" id="tab">

<thead>

<tr>

<th>name</th>

<th>age</th>

<th>sex</th>

<th>phone</th>

<th>address</th>

<th>qq</th>

</tr>

</thead>

<tbody id="tbody">

</tbody>

</table>

<div id="box">

</div>

</body>

</html>

js分页效果的更多相关文章

  1. 非常不错的一个JS分页效果代码

    这里分享一个不错的js分页代码. 代码中cpage是页面计数,应为全局变量,可以随处调用它: totalpage是总页数. 与asp分页代码很类似,也是先取得记录总数,然后实现分页,基本的分页思路与原 ...

  2. 仿淘宝分页按钮效果简单美观易使用的JS分页控件

    分页按钮思想:  1.少于9页,全部显示  2.大于9页,1.2页显示,中间页码当前页为中心,前后各留两个页码  附件中有完整例子的压缩包下载.已更新到最新版本  先看效果图:  01输入框焦点效果  ...

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

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

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

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

  5. JS实现分页效果

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  6. 关于js实现分页效果的简单代码

    <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title&g ...

  7. 原生js显示分页效果

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

  8. 【js】使用javascript 实现静态网页分页效果

    <!DOCTYPE html> <html> <head> <meta http-equiv="content-Type" content ...

  9. jsp、js分页功能的简单总结

    一.概述 首先,我们要明确为何需要分页技术,主要原因有以下: 1.分页可以提高客户体验度,适当地选择合适的数据条数,让页面显得更有条理,使得用户体验感良好,避免过多数据的冗余. 2.提高性能的需要.分 ...

随机推荐

  1. zabbix自定义key监控mysql主从同步超简单!

    原理:利用在slave上运行show slave status获取Slave_IO_Running和Slave_SQL_Running的值 1.在zabbix客户端配置文件中加入: 首先要对mysql ...

  2. 依赖layui form模块 复选框tree插件(拓展可根据属性单选还是多选,数据反选)

    近些天接的项目用的是layui.以前没用过,踩了很多坑,坑就不多说了,直接说layui的tree.因为自带的tree不满足需求,所以在论坛.博客上找了很久终于找到了可以复选的的插件,原文地址:http ...

  3. Spring Boot with Spring-Data-JPA学习案例

    0x01 什么是Spring Boot? Spring Boot是用来简化Spring应用初始搭建以及开发过程的全新框架,被认为是Spring MVC的"接班人",和微服务紧密联系 ...

  4. 单例模式、简单工厂模式、XML解析

    单例模式: 什么是单例模式? 针对特定问题提出的特定解决方案 为什么使用设计模式? 让程序有更好的可扩展性 在哪里使用? 一般情况下,开发中真正使用设计模式的地方,JVM(虚拟机)底层机制模式 usi ...

  5. [Scala] 了解 协变 与 逆变

    首先定义一个类 A,其参数类型 T 为协变,类中包含一个方法 func,该方法有一个类型为 T 的参数: class A[+T] { def func(x: T) {} } 此时在 x 处会有异常提示 ...

  6. php数组排序和查找的算法

    1.php算法 // 算法 // 1.冒泡排序 => 思路:​每次循环排列出一个最大的数 // echo '<pre>'; $arr = [ 1,43,54,62,21,66,32, ...

  7. 【Alpha版本】冲刺阶段 - Day3 - 逆风

    今日进展 袁逸灏:右上角两个按键的添加与实现监听(5h) 刘伟康:继续借鉴其他 alpha 冲刺博客,由于我们组的App原型可以在 alpha 阶段完成,所以不需要墨刀工具展示原型(2h) 刘先润:更 ...

  8. Beta冲刺 总结

    Beta冲刺 总结 1. 完成情况 经过了为其七天的beta冲刺,我们基本完成了之前在<beta开始前准备>博客中所列出的内容. 增加关于征信的功能,贴近选题主题.在学生的信用活动记录中添 ...

  9. 201621123050 《Java程序设计》第12周学习总结

    1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结多流与文件相关内容. 2. 面向系统综合设计-图书馆管理系统或购物车 使用流与文件改造你的图书馆管理系统或购物车. 2.1 简述如何 ...

  10. 【iOS】OC-时间转化的时区问题

    -(void)testTime{ NSDate *now = [NSDate date];//根据当前系统的时区产生当前的时间,绝对时间,所以同为中午12点,不同的时区,这个时间是不同的. NSDat ...