js分页
今天写了下关于分页的js代码,写完的感觉就是有点小麻烦,需要很多if判断,思路要清晰
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<style type="text/css">
a{
margin: 5px;
}
</style>
<title>分页</title>
<script type="text/javascript">
window.onload=function(){
page(
{id:'div1',
nowNum:8,
allNum:10,
callback:function(now,all){
alert('当前页:'+now+','+'总共'+all+'页')
}
}
)
} function page(json){
if(!json.id){
return false
}
var obj=document.getElementById(json.id);
var nowNum=json.nowNum||1;
var allNum=json.allNum||5;
var callback=json.callback||function(){}; if(nowNum >3 && allNum >5){ var oA=document.createElement('a');
oA.href="#"+1;
oA.innerHTML="首页";
obj.appendChild(oA)
}
if(nowNum>1){
var oA=document.createElement('a');
oA.href="#"+(nowNum-1);
oA.innerHTML="上一页";
obj.appendChild(oA)
} if(allNum<=5){
for(var i=0;i<allNum;i++){
var oA=document.createElement('a'); oA.href='#'+(i+1); if(nowNum==i){
oA.innerHTML=(i+1);
}else{
oA.innerHTML='['+ (i+1) +']';
}
obj.appendChild(oA); }
}else{ for(var i=1;i<=5;i++){
var oA=document.createElement('a'); if(nowNum==1||nowNum==2){
oA.href='#'+i;
oA.innerHTML='['+i+']'; if(nowNum==i){
oA.innerHTML=i
}
}else if((allNum - nowNum) == 0||(allNum - nowNum == 1)){ oA.href='#'+(allNum-5+i);
if(allNum - nowNum==0 && i==5){
oA.innerHTML=(allNum-5+i);
}else if(allNum - nowNum==1 && i==4){
oA.innerHTML=(allNum-5+i);
}else{
oA.innerHTML='['+(allNum-5+i)+']';
} }else{
oA.href = '#' + (nowNum - 3 + i); if(i==3){
oA.innerHTML=(nowNum-3+i);
}else{
oA.innerHTML='['+(nowNum-3+i)+']';
} }
obj.appendChild(oA); }
} if((allNum - nowNum)>0){
var oA=document.createElement('a');
oA.href='#'+(nowNum+1);
oA.innerHTML = '下一页'
obj.appendChild(oA);
}
if((allNum - nowNum)>2){
var oA=document.createElement('a');
oA.href='#'+allNum;
oA.innerHTML = '尾页'
obj.appendChild(oA);
}
callback(nowNum,allNum);
var aA=obj.getElementsByTagName('a');
for(var i=0;i<aA.length;i++){ aA[i].onclick=function(){ var nowNum = parseInt(this.getAttribute('href').substring(1)); obj.innerHTML=''; page(
{
id: json.id,
nowNum:nowNum,
allNum:allNum
}
) } }
} </script>
</head>
<body>
<div id="div1">
<!-- <a href="#1">1</a>
<a href="#1">2</a>
<a href="#1">3</a>
<a href="#1">4</a>
<a href="#1">5</a> -->
</div>
</body>
</html>
js分页的更多相关文章
- js分页小结
今天解决了JS分页的问题1 页码 给每页的内容套一个相同的类名 通过选择器加上.length或者.size() 来获得总页数2当前页的页码可以使用each(function(index,DOMsss ...
- 自己封装的JS分页功能[用于搭配后台使用]
* 2016.7.03 修复bug,优化代码逻辑 * 2016.5.25 修复如果找不到目标对象的错误抛出. * 2016.5.11 修复当实际页数(pageNumber)小于生成的页码间隔数时的bu ...
- jsp、js分页功能的简单总结
一.概述 首先,我们要明确为何需要分页技术,主要原因有以下: 1.分页可以提高客户体验度,适当地选择合适的数据条数,让页面显得更有条理,使得用户体验感良好,避免过多数据的冗余. 2.提高性能的需要.分 ...
- 一个重构的js分页类
// JavaScript Document /**//** * js分页类 * @param iAbsolute 每页显示记录数 * @param sTableId 分页表格属性ID值,为Strin ...
- 面向对象版js分页
基于前一个js分页,我将代码改成一个面向对象版的js分页,代码如下 http://peng666.github.io/blogs/pageobj <!DOCTYPE html> <h ...
- 纯js分页代码(简洁实用)
纯js写的分页代码. 复制代码代码如下: //每页显示字数 PageSize=5000; //分页模式 flag=2;//1:根据字数自动分页 2:根据[NextPage]分页 //默认页 start ...
- JS分页 + 获取MVC地址栏URL路径的最后参数
@{ Layout = null; } <!DOCTYPE html> <html> <head> <meta name="viewport&quo ...
- 浅谈js分页的几种方法
一个项目中必然会遇到分页这种需求的,分页可以使数据加载更合理,也让页面显示更美观,更有层次感!那么js分页到底如何实现呢?下面我就来讲一下三种循序渐进的方法 1.自己纯手写分页 更深入的去理解分页的意 ...
- JS分页条插件
目标 制作js分页导航jq插件,用于无刷新分页或者刷新分页 实现目标参考京东和天猫的分页条. 有四个固定按钮,前页码,后页码,首页,末页. 程序关键点在于计算中间页面的起止位置.逻辑是以当前页码为参照 ...
- js分页实例
js分页实例 案例1 1.js_pageusers.html <!DOCTYPE html> <html> <head> <title>js_pageu ...
随机推荐
- 自己实现的一款在线Javascript正则表达式测试器——JRE-Parser
本文最初发布于我的个人博客:http://jerryzou.com/posts/jreparser/ 昨天在看<正则表达式30分钟入门教程>的时候,看到博主自己实现了一个C#写的正则测试器 ...
- windows phone上下文菜单ContextMenu的使用示例
新建一个WP项目,命名为contextmenu,然后往界面拖入一个ListBox控件listBox1,接着切换到XAML代码界面设置其属性,代码如下 <ListBox Height=" ...
- [leetcode]_Roman to Integer
题目:给定一个罗马数字串,转换为一个整数. 一开始没理解,以为是string to int.后来理解:罗马数字与阿拉伯数字的映射关系,见下图: 至此,题目的意思才掌握明白,用程序模拟这张表. 无可置否 ...
- Asp.net MVC4 Knockoutjs BootStrap Ace NinJect Jqgrid sqlserver2008
Asp.net MVC4 Knockoutjs BootStrap Ace NinJect Jqgrid sqlserver2008
- php文件hash算法,秒传原理
header('Content-type:text/html;Charset=UTF-8'); define('blockSize', 4*1024*1024); var_dump(fileHash( ...
- js给php传值
//ajax传值 var str= JSON.stringify(arr1);//数组转string //alert(typeof(str)); $.ajax({ url:'test.php' ,ty ...
- Java 装箱 拆箱
Java 自动装箱与拆箱 ??什么是自动装箱拆箱 基本数据类型的自动装箱(autoboxing).拆箱(unboxing)是自J2SE 5.0开始提供的功能. 一般我们要创建一个类的对象的时候,我 ...
- 小课堂week14 Google软件测试之道
读<Google软件测试之道> 在IT领域,Google是一面旗帜,是一家非常善于思考善于尝试的公司.随着面临挑战的不断增大,传统的测试开展方式也越来越力不从心,这本书讲述的就是一次完整的 ...
- 对ASP.NET Entity FrameWork进行单元测试
添加一个测试用的类库:将Web.config中的connectionstrings节点下的东东复制一份到刚添加的类库的app.config下 使用NUint+TestDriven.net进行测试: 如 ...
- MySQL 设置允许远程登录
1.修改数据表 可能是你的帐号不允许从远程登陆,只能在localhost.这个时候只要在 localhost 的那台电脑,登入MySQL后,更改 "MySQL" 数据库里的 &qu ...