应监听 table.on('page(filter)', callback) 事件获取当前页码,回调参数 obj.curr 即实时页码,obj.limit 为每页条数;table.config.page.curr 和 table.cache 均不保存运行时页码。
layui table 的 page 参数怎么读取当前页码
直接从表格实例的 config 里拿不到实时页码,得靠监听或查分页容器。layui 的 table 实例本身不暴露当前页码字段,但提供了可靠入口。
- 最稳妥的方式是监听
page事件,回调参数里带curr(当前页)和limit(每页条数) - 如果只是临时读取(比如点击按钮时想获取当前页),可以用
table.cache配合分页元素:查.layui-laypage-skip input的值,或读$('.layui-laypage-em').next().text()—— 但这个 DOM 路径不稳定,不推荐 -
table.config里的page.curr是初始化配置,不是运行时状态,改了不会自动同步
用 table.on('page(tableFilter)', ...) 拿到页码的实操写法
这是官方支持、稳定、且能覆盖所有翻页场景(点击页码、跳转、上一页/下一页)的方式。别试图在渲染后手动查 DOM。
- 确保你的表格有唯一
id或设置了elem和page配置,并启用了分页 - 监听必须在
table.render()之后注册,且filter值要和渲染时的id或lay-filter一致 - 回调函数第一个参数是
obj,其中obj.curr就是你要的当前页码,obj.limit是每页数量
table.on('page(test)', function(obj){
console.log('当前页:', obj.curr); // <code>obj.curr</code>
console.log('每页:', obj.limit); // <code>obj.limit</code>
});
为什么不能用 table.cache['test'] 或 table.config.page.curr
因为这两个地方根本不存“当前页”的实时值。table.cache 存的是数据缓存(行数据数组),跟分页逻辑无关;table.config.page.curr 只是初始化时传进去的默认值,后续翻页它不会更新。
- 翻页操作由 Layui 内部的
laypage控制,表格实例只被动响应事件 - 如果你强行在翻页后去读
table.config.page.curr,拿到的永远是初始值(比如 1),不是真实页码 - 试图通过
table.reload()时传page: {curr: xxx}来“设”当前页,只能影响下次请求,对当前已渲染的页码无感
手动跳转到指定页并触发 page 事件的正确姿势
需要程序控制翻页(比如搜索后回到第 1 页),不能只改 DOM 或变量,必须走 table.reload() 并配 page.curr,否则监听不到、UI 不同步。
-
table.reload('test', {page: {curr: 1}})会重新请求第 1 页数据,并自动触发page(test)事件 - 不要用
laypage.render()单独操作分页条,它和table实例不联动 - 如果 reload 后没触发 page 事件,检查是否漏写了
lay-filter,或监听注册晚于 render
page 事件,别绕路。










