js实现分页

1.html页面、

 

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
 <head>
  <title>js_users.html</title>

  <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
  <meta http-equiv="description" content="this is my page">
  <meta http-equiv="content-type" content="text/html; charset=UTF-8">

  <!--<link rel="stylesheet" type="text/css" href="./styles.css">-->

      <script type="text/javascript" src="js/pageuser.js"></script>
 </head>

 <body>
  <div id="one" align="center">
   <div>
    用户名:
    <input type="text" id="userName" />
    性别:
    <input type="text" id="userSex" />
    职业:
    <input type="text" id="userRole" />
    <br />
    <br />
    <input type="button" id="addUsers" value="添加用户" />
    <input type="button" id="updateUsers" value="更新用户" />
   </div>
   <br />
   <br />
   <div>
    <table border="1px" cellpadding="0" cellspacing="0">
     <thead>
      <th>
       用户名
      </th>
      <th>
       性别
      </th>
      <th>
       职业
      </th>
      <th>
       操作
      </th>
     </thead>

     <tbody id="showUsers">
                        
     </tbody>
    </table>
    
    <div>
         <input type="button" id="firstPage" value="首页"/>
         <input type="button" id="backPage" value="上一页"/>
         <input type="button" id="nextPage" value="下一页"/>
         <input type="button" id="lastPage" value="末页"/>
         <span id="msg"></span>
    </div>
   </div>
   
   
  </div>
 </body>
</html>

 

2.js页面

 

 

 

var upTr =null;//更新的行
window.onload = function() {
 

 var pagesize = 3;//每页显示的记录是数
 var recondsize = 0;//总记录数
 var countpage = 0;//总页数
 var nowpage = 1;
 var users = new Array();//存放所有的记录

 var start = 0;
 var end = 0;

 //声明 添加用户的信息的Dom对象
 var domUserName = $("userName");
 var domUserSex = $("userSex");
 var domUserRole = $("userRole");

 //声明添加到指定元素节点的对象
 var domshowUsers = $("showUsers");
 //获取按钮对象
 var addBtn = $("addUsers");
 
 var domUpdateBtn = $("updateUsers");
 
 domUpdateBtn.onclick = function(){
  if(upTr==null){
   alert("没有要更新的数据");
  }else{
    var tds = upTr.childNodes; //所有的td节点对象
    tds[0].firstChild.nodeValue=domUserName.value;
    tds[1].firstChild.nodeValue=domUserSex.value;
    tds[2].firstChild.nodeValue=domUserRole.value;
   
  }
 }
 //为按钮注册事件
 addBtn.onclick = function() {
  //创建user对象
  var user = new User(domUserName.value, domUserSex.value,
    domUserRole.value);
  //把user对象存放数组中
  users.push(user);
  recondsize = users.length;
  countpage = recondsize % pagesize == 0 ? recondsize / pagesize : Math
    .ceil(recondsize / pagesize);

  if (users.length <= pagesize && users.length > 0) {
   start = 0;
   end = users.length;
  }else{
   start=users.length-pagesize;
   end=users.length;
  }
  showUser(start, end, recondsize, countpage, users, domshowUsers);

  alert("用户添加成功");
 };

 //获取分页相关的按钮
 var firstPage = $("firstPage");
 var backPage = $("backPage");
 var nextPage = $("nextPage");
 var lastPage = $("lastPage");

 firstPage.onclick = function() {
  nowpage = 1;//重新赋值 
  if (users.length <= pagesize && users.length > 0) {
   start = 0;
   end = users.length;
  } else {
   start = (nowpage - 1) * pagesize;
   end = (nowpage - 1) * pagesize + pagesize;
  }
  showUser(start, end, recondsize, countpage, users, domshowUsers);

 }
 backPage.onclick = function() {
  nowpage = nowpage - 1;//重新赋值 
  if (nowpage <= 1) {
   nowpage = 1;
  }
  if (users.length <= pagesize && users.length > 0) {
   start = (nowpage - 1) * pagesize;
   end = users.length;
  } else {
   start = (nowpage - 1) * pagesize;
   end = (nowpage - 1) * pagesize + pagesize;
  }
  showUser(start, end, recondsize, countpage, users, domshowUsers);

 }

 nextPage.onclick = function() {
  nowpage = nowpage + 1;//重新赋值 

  if (nowpage >= countpage) {
   nowpage = countpage;
   start = (nowpage - 1) * pagesize;
   end = recondsize;
  } else {
   start = (nowpage - 1) * pagesize;
   end = (nowpage - 1) * pagesize + pagesize;
  }
  showUser(start, end, recondsize, countpage, users, domshowUsers);

 }
 lastPage.onclick = function() {
  nowpage = countpage;//重新赋值 
  if (users.length <= pagesize && users.length > 0) {
   start = (nowpage - 1) * pagesize;
   end = users.length;
  } else {
   start = (nowpage - 1) * pagesize;
   end = (nowpage - 1) * pagesize + pagesize;
  }
  showUser(start, end, recondsize, countpage, users, domshowUsers);

 };

 //bug 清空数据
 //bug end每页显示结束的位置
};

//创建一个Function函数  函数是保存User对象数据的
function User(name, sex, role) {
 this.name = name;
 this.sex = sex;
 this.role = role;
}

function $(id) {
 return document.getElementById(id);
}

function showUser(start, end, recondsize, countpage, users, domshowUsers) {

 //清空数据
 for ( var jj = 0; jj < domshowUsers.childNodes.length;) {
  domshowUsers.removeChild(domshowUsers.childNodes[jj]);
 }

 for ( var i = start; i < end; i++) {
  var user = users[i];
  //创建一行
  var tr = document.createElement("tr");
  //创建列
  var td1 = document.createElement("td");
  //创建文本节点
  var td1TextNode = document.createTextNode(user.name);
  //文本节点添加到td中
  td1.appendChild(td1TextNode);

  //创建列
  var td2 = document.createElement("td");
  //创建文本节点
  var td2TextNode = document.createTextNode(user.sex);
  //文本节点添加到td中
  td2.appendChild(td2TextNode);

  //创建列
  var td3 = document.createElement("td");
  //创建文本节点
  var td3TextNode = document.createTextNode(user.role);
  //文本节点添加到td中
  td3.appendChild(td3TextNode);

  //创建列
  var td4 = document.createElement("td");
  //创建删除按钮
  var delBtn = document.createElement("button");
  //为按钮添加文本节点
  delBtn.appendChild(document.createTextNode("删除"));
  
  //实现删除操作
  delBtn.onclick = function(){
   domshowUsers.removeChild(this.parentNode.parentNode);
  }
  
  
  //创建修改按钮
  var updateBtn = document.createElement("button");
  //为按钮添加文本节点
  updateBtn.appendChild(document.createTextNode("编辑"));
  
  
  updateBtn.onclick = function(){
   upTr = this.parentNode.parentNode;
   
   var tds = upTr.childNodes;
   
   for(var i=0;i<tds.length;i++){
    var td = tds[i];
    if(td.nodeType==1){
     if(i==0){
      domUserName.value=td.firstChild.nodeValue;
     }else if(i==1){
      domUserSex.value=td.lastChild.nodeValue;
     }else if(i==2){
      domUserRole.value=td.childNodes[0].nodeValue;
     }
    }
   }
   
   
  };

  //把按钮添加到 对应td中
  td4.appendChild(delBtn);
  td4.appendChild(updateBtn);
  //把列添加到行中
  tr.appendChild(td1);
  tr.appendChild(td2);
  tr.appendChild(td3);
  tr.appendChild(td4);

  //把行添加到tbody中
  domshowUsers.appendChild(tr);
  
  
  document.getElementById("msg").innerHTML = "总共:{" + recondsize
    + "}条记录,共{" + countpage + "}页";
 }
}

 

 

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值