今天写了下关于分页的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分页的更多相关文章

  1. js分页小结

     今天解决了JS分页的问题1 页码 给每页的内容套一个相同的类名 通过选择器加上.length或者.size() 来获得总页数2当前页的页码可以使用each(function(index,DOMsss ...

  2. 自己封装的JS分页功能[用于搭配后台使用]

    * 2016.7.03 修复bug,优化代码逻辑 * 2016.5.25 修复如果找不到目标对象的错误抛出. * 2016.5.11 修复当实际页数(pageNumber)小于生成的页码间隔数时的bu ...

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

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

  4. 一个重构的js分页类

    // JavaScript Document /**//** * js分页类 * @param iAbsolute 每页显示记录数 * @param sTableId 分页表格属性ID值,为Strin ...

  5. 面向对象版js分页

    基于前一个js分页,我将代码改成一个面向对象版的js分页,代码如下 http://peng666.github.io/blogs/pageobj <!DOCTYPE html> <h ...

  6. 纯js分页代码(简洁实用)

    纯js写的分页代码. 复制代码代码如下: //每页显示字数 PageSize=5000; //分页模式 flag=2;//1:根据字数自动分页 2:根据[NextPage]分页 //默认页 start ...

  7. JS分页 + 获取MVC地址栏URL路径的最后参数

    @{ Layout = null; } <!DOCTYPE html> <html> <head> <meta name="viewport&quo ...

  8. 浅谈js分页的几种方法

    一个项目中必然会遇到分页这种需求的,分页可以使数据加载更合理,也让页面显示更美观,更有层次感!那么js分页到底如何实现呢?下面我就来讲一下三种循序渐进的方法 1.自己纯手写分页 更深入的去理解分页的意 ...

  9. JS分页条插件

    目标 制作js分页导航jq插件,用于无刷新分页或者刷新分页 实现目标参考京东和天猫的分页条. 有四个固定按钮,前页码,后页码,首页,末页. 程序关键点在于计算中间页面的起止位置.逻辑是以当前页码为参照 ...

  10. js分页实例

    js分页实例 案例1 1.js_pageusers.html <!DOCTYPE html> <html> <head> <title>js_pageu ...

随机推荐

  1. 实例分析ELF文件静态链接

    参考文献: <ELF V1.2> <程序员的自我修养---链接.装载与库>第4章 静态链接 开发平台: [thm@tanghuimin static_link]$ uname ...

  2. sql查看当前周数

    select datepart(wk,cast(getdate() as datetime))

  3. Hive[1] 初识 及 安装

    本文前提是Hadoop & Java & mysql 数据库,已经安装配置好,并且 环境变量均已经配置到位   声明:本笔记参照 学习<Hive 编程指南>而来,如果有错误 ...

  4. 深入了解Javascript模块化编程

    本文译自Ben Cherry的<JavaScript Module Pattern: In-Depth>.虽然个人不太认同js中私有变量存在的必要性,但是本文非常全面地介绍了Javascr ...

  5. 【转】HTML5新增元素兼容旧浏览器方法

    ref:http://www.jb51.net/html5/163906.html 问题:如何让IE8-兼容这些标签?(需要设计JS中的DOM) 代码如下: <span style=" ...

  6. 安装pdo.so和pdo_mysql.so还有pcntl.so扩展到php中

    1.下载源码,解压tar -xzvf php-5.4.20.tar.gz cd  /usr/local/src/php-5.4.20/ext/pdo /usr/local/php/bin/phpize ...

  7. jquery.unobtrusive-ajax.js源码阅读

    /*! ** Unobtrusive Ajax support library for jQuery ** Copyright (C) Microsoft Corporation. All right ...

  8. RSA的密钥把JAVA格式转换成C#的格式

    RSA算法在C#与JAVA之前的交互 在JAVA生成一对RSA私钥和公钥的时候,是以下的形式给到C#去调用: string publickey = @"MIGfMA0GCSqGSIb4DQE ...

  9. javascript arguments

    此文为转载文章: 什么是arguments arguments 是是JavaScript里的一个内置对象,它很古怪,也经常被人所忽视,但实际上是很重要的.所有主要的js函数库都利用了arguments ...

  10. WinForm 加载自定义控件闪烁问题

    WinForm加载多个自定义控件时,会出现很严重的闪烁问题,很卡,一块一块的加载(像打开网页时,网络很卡的那种感觉)简直没法忍受. 在网上搜索了好久,网上大部分的方法是一下4种,但是都不能有效的解决问 ...