最可靠方式是监听 page 事件:table.on('page(test)', function(obj){ console.log('当前页:', obj.curr); console.log('每页条数:', obj.limit); });其中 obj.curr 和 obj.limit 为实时生效值,不受初始化配置影响。

layui表格如何读取当前页码和每页条数
layui 的 table 模块在分页渲染后,页码和每页条数并不直接暴露为全局变量,而是藏在表格实例的内部配置和 DOM 属性中。最可靠的方式是通过表格实例的 config 和 where 字段反推,或监听分页事件实时捕获。
用 table.cache 和 table.config 获取当前状态
table.cache 存的是原始数据缓存,不包含分页信息;真正要看的是表格实例返回的 config 对象——它记录了初始化时的全部配置,包括 page、limit、limits 等。但注意:config.limit 是初始每页条数,不是当前选中的值;当前页码也得靠其他方式确认。
- 调用
table.render()时保存返回的实例:var tableIns = table.render({...}) -
tableIns.config.page是布尔值(是否开启分页),不是页码;页码实际由tableIns.config.where.page或tableIns.config.curr提供(取决于是否手动传了where) - 当前每页条数优先取
tableIns.config.limit,但如果用户切换过下拉选择,则需监听page事件才能拿到最新值
监听 page 事件实时获取变化后的页码和 limit
这是最稳妥的做法。layui 表格在用户点击页码、切换每页数量、或调用 table.reload() 触发重载时,都会触发 page 事件,并把当前页码和每页条数作为参数传入。
table.on('page(test)', function(obj){
console.log('当前页:', obj.curr); // 当前页码
console.log('每页条数:', obj.limit); // 当前每页数量
console.log('总条数:', obj.count); // 总数(服务端返回时才有)
});
- 事件名格式为
page(你的表格 lay-id),确保lay-id="test"与监听一致 -
obj.curr和obj.limit是真实生效的值,不受初始化配置覆盖影响 - 如果表格未开启分页(
page: false),该事件不会触发
reload 时如何主动传入并读取当前页码/limit
调用 table.reload() 重载表格时,若没显式传 page 和 limit,layui 默认沿用上一次的值。但如果你想在 reload 前读取当前状态,必须依赖上一次 page 事件的回调结果,或自己维护一个状态对象。
- 不要依赖
tableIns.config.curr或tableIns.config.limit来做 reload 参数——它们可能没被更新 - 推荐做法:定义一个外部变量
var currentPage = 1, currentLimit = 10;,在page回调里同步更新它们,reload 时再传入 - 服务端接口接收的参数名默认是
page和limit,但可通过request配置自定义,此时也要同步调整监听逻辑
页码和 limit 的“当前值”本质上是用户交互+事件驱动的状态,不是静态属性。不监听 page 事件,就无法可靠捕获切换行为;不自己维护变量,reload 就容易用错上下文。这点很容易被忽略,尤其在多表格共存或异步操作频繁的场景里。











