基于jQuery封装的通用JS分页组件及AJAX调用示例
作者:异步漫步时间:2026-10-26 15:39:00浏览:295
本文介绍了一个基于jQuery封装的轻量级JavaScript分页组件。该组件支持自定义总记录数、每页显示条数及当前页码,自动计算总页数并生成包含首页、上一页、下一页、尾页及页码列表的导航HTML。文中提供了完整的封装代码,并结合jQuery AJAX演示了如何将该分页组件与后端接口结合,实现动态数据加载与页面渲染,适用于需要快速实现列表分页功能的Web项目。
jQuery分页组件封装实现
代码如下:
(function ($) {
var PageFunc = function PageFunc() { }
$.PageFunc = function (Total, PageSize, curPageNum, FunUrl) {
if (PageSize == "" || PageSize == null || PageSize == undefined) {
PageSize = 10;
}
if (curPageNum == "" || curPageNum == null || curPageNum == undefined) {
curPageNum = 1;
}
//计算总页数
Total = parseInt(Total); //总记录数
PageSize = parseInt(PageSize); //每页显示数
curPageNum = parseInt(curPageNum); //当前页
//总页数
var AllPage = Math.floor(Total / PageSize);
if (Total % PageSize != 0) {
AllPage++;
}
var navHtml = "";
if (curPageNum <= 0)
curPageNum = 1;
if (AllPage > 1) {
if (curPageNum != 1) {
//处理首页连接
navHtml += "<span><a href=\"javascript:" + FunUrl + "('1')\" >|<</a></span> ";
}
if (curPageNum > 1) {
//处理上一页的连接
navHtml += "<span><a href=\"javascript:" + FunUrl + "('" + (curPageNum - 1) + "')\" ><<</a></span> ";
}
else {
navHtml += "<span class=\"disabled\"><<</span> ";
}
var currint = 5;
for (var i = 0; i <= 10; i++) {
//一共最多显示10个页码,前面5个,后面5个
if ((curPageNum + i - currint) >= 1 && (curPageNum + i - currint) <= AllPage)
if (currint == i) {
//当前页处理
navHtml += "<span lass=\"current\">[" + curPageNum + "]</span> ";
}
else {
//一般页处理
var n = curPageNum + i - currint;
navHtml += "<a href=\"javascript:" + FunUrl + "('" + (parseInt(n)) + "')\">" + n + "</a> ";
}
}
if (curPageNum < AllPage) {
//处理下一页的链接
navHtml += "<span><a href=\"javascript:" + FunUrl + "('" + (parseInt(curPageNum) + 1) + "')\">>></a></span> ";
}
else {
navHtml += "<span class=\"disabled\">>></span> ";
}
if (curPageNum != AllPage) {
navHtml += "<span><a href=\"javascript:" + FunUrl + "('" + AllPage + "')\" >>|</a></span>  ";
}
}
navHtml += "<span>[" + curPageNum + "/" + AllPage + "]</span> ";
return navHtml;
};
})(jQuery); AJAX数据加载与分页调用示例
下边是调用方法:
代码如下:
function QueryList(curpage) {
if (curpage == "" || curpage == null || curpage == undefined) {
curpage = 1;
}
var pagesize = 10;
var Countys = $("#Countys").val(); //县
var enddate = $("#enddate").val(); //结束时间
var begindate = $("#begindate").val(); //开始时间
$.ajax({
url: "",
type: "POST",
data: { "Countys": Countys, "enddate": enddate, "begindate": begindate, "curpage": curpage, "pagesize": pagesize },
dataType: "json",
error: function (xhr, status, errMsg) { window.location.href = "/CommonError/index/" + errMsg.code + "?txt=" + errMsg.msg; },
success: function (mydata) {
var str = "";
$.each(mydata.Tdata, function (i, item) {
str += "<tr>"
str += "<td>" + $.FormatDateTime(item.ControlBeginTime, false) + "</td>";
str += "<td>" + $.FormatDateTime(item.ControlEndTime, false) + "</td>";
str += "<td>" + item.Name + "</td>";
str += "<td>" + item.PlateNumber + "</td>";
str += "<td>" + item.ControlDept + "</td>";
if (item.IsAll == "0") {
str += "<td>全县布控</td>"
}
else {
str += "<td>按卡口点布控</td>"
}
str += "<td>" + item.IsAll == "0" ? "全县布控" : "按卡口点布控" + "</td>"
str += "<td>修改</td>"
str += "<td>删除</td>"
str += "<td>详细</td>"
str + "</tr>"
});
$("#srh_rslt tbody").html(str);
$(".pagination").html($.PageFunc(mydata.total, pagesize, curpage, "QueryList"));
}
});
} 作者最新文章
D3.js 比例尺与坐标轴的配置详解
2026-11-05 16:54:46
JavaScript怎么遍历对象的Symbol键和不可枚举属性
2026-11-05 13:13:39
封装一个健壮的JS字符串判空工具函数
2026-11-05 12:16:14
JavaScript合并数组的三种常用方法:concat、扩展运算符与push
2026-11-05 11:22:29
JavaScript立即执行函数(IIFE)是什么及基本语法
2026-11-05 10:51:19
