以下为jquery.dataTables.min.js中关于分页页码的源代码 :
*** 注释部分为个人添加的。
g.extend(!0, p.ext.renderer, {
pageButton: {
_: function(a, b, c, e, d, f) {
var h = a.oClasses, i = a.oLanguage.oPaginate, j, l, m = 0, o = function(b, e) {
var k, p, r, q, s = function(b) {
Sa(a, b.data.action, true)
};
k = 0;
for (p = e.length; k < p; k++) {
q = e[k];
// 此处是判断是页码数字还是页码按钮
if (g.isArray(q)) {
// ==== 需要添加以下代码 ===
if(q.length == 0){
q.push(0);
}
// ==== 结束 ===
// 实现页面dom元素的拼接
r = g("<" + (q.DT_el || "div") +"/>").appendTo(b);
// 递归实现页码数字的渲染
o(r, q)
} else {
l = j = "";
switch (q) {
case "ellipsis":
b.append("<span>…</span>");
break;
case "first":
j = i.sFirst;
l = q + (d > 0 ? "" : " " + h.sPageButtonDisabled);
break;
case "previous":
j = i.sPrevious;
l = q + (d > 0 ? "" : " " + h.sPageButtonDisabled);
break;
case "next":
j = i.sNext;
l = q + (d < f - 1 ? "" : " " + h.sPageButtonDisabled);
break;
case "last":
j = i.sLast;
l = q + (d < f - 1 ? "" : " " + h.sPageButtonDisabled);
break;
default:
j = q + 1;
l = d === q ? h.sPageButtonActive : ""
}
if (j) {
r = g("<a>", {
"class": h.sPageButton + " " + l,
"aria-controls": a.sTableId,
"data-dt-idx": m,
tabindex: a.iTabIndex,
id: c === 0 && typeof q === "string" ? a.sTableId + "_" + q : null
}).html(j).appendTo(b);
Ua(r, {
action: q
}, s);
m++
}
}
}
};
try {
var k = g(P.activeElement).data("dt-idx");
o(g(b).empty(), e);
k !== null && g(b).find("[data-dt-idx=" + k + "]").focus()
} catch (p) {}
}
}
});