分享一个jquery的伪分页方法

原始的代码是来自这个网站http://www.csrcode.cn/article-3695-1.html 但是原始帖子我也不知道是哪个,我觉得不太好用,自己整合了一下,可以对表格数据进行伪分页,而且只需要执行简单的代码就可以实现。

实现的很简单、样式也不太好看,大家可以自行调整,纠正。

 

下面是一个table,tbody里加载tr数据,无论你怎么加载,

在数据加载完成后便可以对table数据进行伪分页、注意div引用的class,我填充的数据是四列的,所以td里加了colspan,div是分页显示区域

<table>
      <tbody id="dialog-items">
       </tbody>
        <tfoot>
           <tr>
             <td colspan="4">
                <div id="maskPage" class="page_btn">
                </div>
             </td>
        </tr>
     </tfoot>
  </table>

 

 

下面是css和js方法

.page_btn{padding-top:0px;}
.page_btn a{cursor:pointer;padding:5px;border:solid 1px #ccc;font-size:12px;}
.page_box{float:right;}
.num{padding:0 10px;}

js方法如下

//对tbody伪分页;pageDiv:用于显示分页数据的div tbodyId :tbody的ID,pageSize,分页数目
function pagiNation(pageDiv,tbodyId,pageSize){
   
   $("#"+tbodyId+" tr:gt("+(pageSize-1)+")").hide();//初始化,前面pageSize-1条数据显示,其他的数据隐藏。
   var total_q=$("#"+tbodyId+" tr").length;//总数据
   var current_page=pageSize;//每页显示的数据
   var current_num=1;//当前页数
   var total_page= Math.ceil(parseFloat(total_q)/parseFloat(current_page));//总页数
   
   var pagePlugIn = "<span class=\"page_box\">"+
					"<a id=\""+tbodyId+"_prev\" class=\"prev\">上一页</a>"+
					"<span id=\""+tbodyId+"_num\" class=\"num\">"+
					"<span id=\""+tbodyId+"_current_page\" class=\"current_page\">1</span>"+
					"<span style=\"padding:0 3px;\">/</span>"+
					"<span id=\""+tbodyId+"_total\" class=\"total\"></span></span>"+
					"<a id=\""+tbodyId+"_next\" class=\"next\">下一页</a>"+
					"</span>";
   
   $("#"+pageDiv+"").html(pagePlugIn);
   
   var next=$("#"+tbodyId+"_next");//下一页
   var prev=$("#"+tbodyId+"_prev");//上一页
   
   $("#"+tbodyId+"_total").text("");//显示总页数
   $("#"+tbodyId+"_total").text(total_page);//显示总页数
   $("#"+tbodyId+"_current_page").text("");//当前的页数
   $("#"+tbodyId+"_current_page").text(current_num);//当前的页数
   
   //下一页
  $("#"+tbodyId+"_next").unbind("click");
  $("#"+tbodyId+"_next").click(function(){
  
  if(current_num==total_page){
       return false;//如果大于总页数就禁用下一页
  }
  else{
	  $("#"+tbodyId+"_current_page").text(++current_num);//点击下一页的时候当前页数的值就加1
	
	  $.each($("#"+tbodyId+" tr"),function(index,item){
	  var start = current_page* (current_num-1);//起始范围
	  var end = current_page * current_num;//结束范围
	  if(index >= start && index < end){//如果索引值是在start和end之间的元素就显示,否则就隐
	    $(this).show();
	  }else {
	  $(this).hide();
	  }
  });
 }
});
//上一页方法
$("#"+tbodyId+"_prev").unbind("click");
$("#"+tbodyId+"_prev").click(function(){
	if(current_num==1){
	 	return false;
	}else{
		$("#"+tbodyId+"_current_page").text(--current_num);
		$.each($("#"+tbodyId+" tr"),function(index,item){
		var start = current_page* (current_num-1);//起始范围
		var end = current_page * current_num;//结束范围
		if(index >= start && index < end){//如果索引值是start和end之间的元素就显示,否则就隐藏
			$(this).show();
		}else {
			$(this).hide();
		}
	});
}
})
   
   $("#"+pageDiv+"").show();
}

 

页面引用css和js,加载完成数据后,

function fillTabl(){
          ......................

          数据填充.............

          ..........................
          pagiNation('maskPage','dialog-items',10); //传入div的id,tbody的id,还有分页数

        
   }

 

效果如下:

 

 

 

 

 

 

 

转载于:https://my.oschina.net/tosoonersky/blog/134485

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
对于一个分页的实现,我们需要考虑以下几个方面: 1. 分页的总页数是多少? 2. 每一页需要显示多少条数据? 3. 当前页是第几页? 4. 用户如何切换到下一页或上一页? 5. 用户如何跳转到指定的某一页? 下面是一个基于jQuery实现的分页示例代码: HTML代码: ``` <div class="pagination"> <ul> <li class="prev"><a href="#">«</a></li> <li><a href="#">1</a></li> <li><a href="#">2</a></li> <li><a href="#">3</a></li> <li><a href="#">4</a></li> <li><a href="#">5</a></li> <li class="next"><a href="#">»</a></li> </ul> </div> ``` CSS代码: ``` .pagination { display: inline-block; margin: 20px 0; } .pagination ul { list-style: none; margin: 0; padding: 0; } .pagination li { display: inline-block; } .pagination li a { color: #666; display: block; padding: 5px 10px; text-decoration: none; } .pagination li.active a { color: #fff; background-color: #337ab7; } .pagination li.disabled a { color: #ccc; cursor: not-allowed; } ``` jQuery代码: ``` $(function() { // 定义每一页显示的数据条数和当前页码 var pageSize = 10; var currentPage = 1; // 获取数据总条数,并计算总页数 var total = 100; var totalPages = Math.ceil(total / pageSize); // 渲染分页控件 renderPagination(); // 点击页码切换到相应的页面 $('.pagination').on('click', 'a', function(e) { e.preventDefault(); var $this = $(this); if ($this.parent().hasClass('disabled') || $this.parent().hasClass('active')) { return; } if ($this.parent().hasClass('prev')) { currentPage--; } else if ($this.parent().hasClass('next')) { currentPage++; } else { currentPage = parseInt($this.text()); } renderPagination(); }); // 渲染分页控件 function renderPagination() { var html = ''; // 渲染上一页按钮 if (currentPage == 1) { html += '<li class="prev disabled"><a href="#">«</a></li>'; } else { html += '<li class="prev"><a href="#">«</a></li>'; } // 渲染数字按钮 for (var i = 1; i <= totalPages; i++) { if (i == currentPage) { html += '<li class="active"><a href="#">' + i + '</a></li>'; } else { html += '<li><a href="#">' + i + '</a></li>'; } } // 渲染下一页按钮 if (currentPage == totalPages) { html += '<li class="next disabled"><a href="#">»</a></li>'; } else { html += '<li class="next"><a href="#">»</a></li>'; } $('.pagination ul').html(html); } }); ``` 在这个示例中,我们定义了每一页显示的数据条数和当前页码,并通过计算总数据条数和每一页显示的数据条数来得到总页数。然后,我们渲染了一个分页控件,包括上一页、数字按钮和下一页三部分。当用户点击上一页或下一页按钮时,我们更新当前页码并重新渲染分页控件。当用户点击数字按钮时,我们跳转到相应的页码。最后,我们使用CSS样式来美化分页控件。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值