JS 实现table分页显示 —— 实际案例

17 篇文章 1 订阅
7 篇文章 0 订阅

实际页面效果

http://ikaros-521.gitee.io/js_table_paging
代码下载: 码云 GitHub

文章参考

https://blog.csdn.net/baidu_41647119/article/details/83479867

效果展示

第一页 15条记录,右下角显示
在这里插入图片描述
第二页 11条记录,右下角显示
在这里插入图片描述

具体代码

相关样式我用了 bootstrap,jQuery。jQuery必要,数据暂时瞎造,JS建表

index.html

<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
		<title>分页</title>
		<script src="js/jquery-2.2.3.min.js"></script>
		<script src="js/jquery-ui.min.js"></script>
		<link type="text/css" href="css/jquery-ui.min.css" rel="stylesheet">
		<link href="css/bootstrap.min.css" rel="stylesheet">
		<script src="js/bootstrap.min.js"></script>
		<link type="text/css" href="css/2.css" rel="stylesheet">
	  <script>
		$(document).ready(function(){
			$("#input_page").keydown(function(e) {  
				if (e.keyCode == 13) {  
					jumpPage2();
				}  
			});
		});
		</script>
  </head>
  <body onload="get_info()" style="background-color:white;">
	<div id="head">

	</div>
	<div id="center">
		<div id="center_div1">
			<div>
			  <form>
				    <table border="1" class="table table-bordered" id="table1"> 
				      <thead>
					    <tr id="list"> 
						    <th class="table_th">th1</th> 
						    <th class="table_th">th2</th> 
						    <th class="table_th">th3</th> 
						    <th class="table_th">th4</th> 
					    </tr> 
					    </thead>
					    <tbody id="listbody">
							
						</tbody>
				    </table> 
				</form>
			</div>
		</div>
		<div id="center_div2">
			<div id="barcon" class="barcon" >
				<div id="barcon2" class="barcon2">
					<ul>
						<li>
							<span id="total_tr"></span>
							<input id="paging" type="text" value="" readonly="true"/>
							<span id="total_page"></span>
						</li>
						<li><a href="###" id="firstPage">&lt;&lt;</a></li>
						<li><a href="###" id="prePage">&lt;</a></li>
						<li><a href="###" id="nextPage">&gt;</a></li>
						<li><a href="###" id="lastPage">&gt;&gt;</a></li>
						<li>
							<span>前往</span>
							<input id="input_page" type="text" value="" autocomplete="off"/>
							<span></span>
						</li>
					</ul>
				</div>
			</div>
		</div>
	</div>
	<div id="bottom">
		
	</div>
  </body>
  <script src="js/2.js"></script>
</html>


2.js

var pageSize=0;//每页显示行数
var currentPage_=1;//当前页全局变量,用于跳转时判断是否在相同页,在就不跳,否则跳转。
var totalPage;//总页数
var totalTr;//总行数
 
//跳转页面
function goPage(pno,psize){

	var itable = document.getElementById("listbody");
	var num = itable.rows.length;//表格所有行数(所有记录数)
	totalTr = num;
	//alert(num);
 
	pageSize = psize;//每页显示行数
    //总共分几页 
	if(num/pageSize > parseInt(num/pageSize)){   
		totalPage=parseInt(num/pageSize)+1;   
	}else{   
		totalPage=parseInt(num/pageSize);   
	}   
	var currentPage = pno;//当前页数
	currentPage_=currentPage;
	var startRow = (currentPage - 1) * pageSize+1; 
	var endRow = currentPage * pageSize;
	endRow = (endRow > num)? num : endRow;    
	//遍历显示数据实现分页
	/*for(var i=1;i<(num+1);i++){    
		var irow = itable.rows[i-1];
		if(i>=startRow && i<=endRow){
			irow.style.display = "";    
		}else{
			irow.style.display = "none";
		}
	}*/
 
	$("#listbody tr").hide();
	for(var i=startRow-1;i<endRow;i++)
	{
		$("#listbody tr").eq(i).show();
	}
	
	document.getElementById("total_tr").innerHTML = "共"+num+"条";
	document.getElementById("paging").value = pageSize+"条/页";
	document.getElementById("total_page").innerHTML = "共"+totalPage+"页";
     
	if(currentPage>1){
		$("#firstPage").on("click",function(){
			goPage(1,psize);
		}).removeClass("ban");
		$("#prePage").on("click",function(){
			goPage(currentPage-1,psize);
		}).removeClass("ban");   
	}else{
		$("#firstPage").off("click").addClass("ban");
		$("#prePage").off("click").addClass("ban");  
	}
 
	if(currentPage<totalPage){
		$("#nextPage").on("click",function(){
			goPage(currentPage+1,psize);
		}).removeClass("ban")
		$("#lastPage").on("click",function(){
			goPage(totalPage,psize);
		}).removeClass("ban")
	}else{
		$("#nextPage").off("click").addClass("ban");
		$("#lastPage").off("click").addClass("ban");
	}   
    
	$("#input_page").val(currentPage);
}
 
// 检验非0的正整数
function check_num(str) {
	var reg = /^\+?[1-9][0-9]*$/;
	if (!reg.test(str)) {
		return false;
	}
	return true;
}
 

function jumpPage2()
{
	if(false == check_num($("#input_page").val()))
	{
		alert("请输入非零的正整数");
	}
	else
	{
		var num = parseInt($("#input_page").val());
		//alert(num);
		if(num != currentPage_)
		{
			if(num > totalPage)
			{
				alert("超出最大页数,请重新输入");
			}
			else
			{
				goPage(num,pageSize);
			}
		}
	}
}


// 添加表格
function addlist(s1,s2,s3,s4){  
	//创建一个tr  
	var tr = document.createElement("tr");  
	//创建td   
	  
	var td1 = document.createElement("td");  
	td1.innerHTML = s1;  
	  
	var td2 = document.createElement("td");  
	td2.innerHTML = s2;  
	  
	var td3 = document.createElement("td");  
	td3.innerHTML = s3;  
	  
	var td4 = document.createElement("td");  
	td4.innerHTML = s4;

	  
	//将创建的td添加到tr中  
	tr.appendChild(td1);  
	tr.appendChild(td2);  
	tr.appendChild(td3);  
	tr.appendChild(td4);    
	//使用appendChild(tr)方法,将tr添加到listbody中  
	//其中获取的listbody是要将表格添加的位置的id  
	var listbody = document.getElementById("listbody");  
	listbody.appendChild(tr);  
};

// 获取信息
function get_info()
{
	$('#table1 tbody').html('');
	//建表
	for(var i=0; i<26; i++)
	{
		addlist(i, i+1, i+2, i+3);
	}
	
	goPage(1,15);
};

2.css

body {
	margin: 0px;
	background-color: #E4E7ED;
	background-image: none;
	position: unset;
	left: -0px;
	margin-left: auto;
	margin-right: auto;
	text-align: left;
	font-family: MicrosoftYaHei;
}

#center {
	margin-top: 15px;
	background: inherit;

	line-height: 20px;

	padding-left: 12px;
	padding-right: 12px;
}

/* 表格的字段名 */
.table_th {
	font-family: MicrosoftYaHei;
	font-size: 14px;
	color: #787878;
	letter-spacing: 0;
	line-height: 14px;
}

#center_div1 {
	background-color: white;
	padding: 10px;
	height: 810px;
}

#center_div2 {
	position: absolute;
	right: 0px;
	bottom: 100px;
}


.barcon {
	width: 100%;
	height: 30px;
}

.barcon2 {
	width: 770px;
	height: 30px;
	margin-left: 300px;
}

.barcon2 ul {
	list-style-type: none;
	margin:0px;
	padding:0px;
}
.barcon2 li {
	margin-left: 20px;
	float:left;
	height:40px;
}

.barcon2 span {
	font-family: MicrosoftYaHei;
	font-size: 16px;
	color: #606266;
	letter-spacing: 0;
	line-height: 16px;
}

.barcon2 input {
	font-family: MicrosoftYaHei;
	font-size: 16px;
	color: #606266;
	letter-spacing: 0;
	line-height: 16px;
}

#paging {
	text-align: center;
	width: 107px;
	height: 28px;
	background: #FFFFFF;
	border: 1px solid #DCDFE6;
	border-radius: 3px;
}

/* 前往 页 */
#input_page {
	text-align: center;
	width: 60px;
	height: 28px;
	background: #FFFFFF;
	border: 1px solid #DCDFE6;
	border-radius: 3px;
}

.table>tbody>tr>td{
	border:0px;
	border-bottom:1px solid #dedede;
}

.table>thead>tr>th{
	border:0px;
	border-bottom:1px solid #dedede;
}

#listbody tr td img {
	cursor: pointer;
}

/* 设备列表 */
#table1 td {
	font-family: MicrosoftYaHei;
	font-size: 14px;
	color: #242424;
	letter-spacing: 0;
	line-height: 14px;
}

  • 2
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
可以使用 JavaScript 或者 jQuery 实现 HTML 表格的分页显示。具体实现方法如下: 1. 在 HTML 中添加一个表格和一个分页器的容器: ```html <table id="myTable"> <!-- 表格内容 --> </table> <div id="pagination"></div> ``` 2. 在 JavaScript 中定义每页显示的行数和当前页码: ```javascript var rowsPerPage = 10; // 每页显示的行数 var currentPage = 1; // 当前页码 ``` 3. 编写一个函数来根据当前页码和每页显示的行数来显示表格的某一页: ```javascript function showTablePage(page) { var startIndex = (page - 1) * rowsPerPage; var endIndex = startIndex + rowsPerPage; $('#myTable tbody tr').hide(); // 隐藏所有行 $('#myTable tbody tr').slice(startIndex, endIndex).show(); // 显示当前页的行 } ``` 4. 编写一个函数来生成分页器: ```javascript function generatePagination() { var numRows = $('#myTable tbody tr').length; var numPages = Math.ceil(numRows / rowsPerPage); var paginationHtml = ''; for (var i = 1; i <= numPages; i++) { paginationHtml += '<a href="#" class="page-link" data-page="' + i + '">' + i + '</a>'; } $('#pagination').html(paginationHtml); } ``` 5. 在页面加载完成后调用 `showTablePage` 和 `generatePagination` 函数,并且为分页器中的每个链接添加点击事件: ```javascript $(document).ready(function() { showTablePage(currentPage); generatePagination(); $('#pagination').on('click', '.page-link', function(event) { event.preventDefault(); currentPage = $(this).data('page'); showTablePage(currentPage); }); }); ``` 这样就可以实现 HTML 表格的分页显示了。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Love丶伊卡洛斯

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值