layui table 的 text 配置项在 table.render() 的顶层参数对象中设置,为对象类型,仅需设 text: { none: '自定义文字' } 即可修改“暂无数据”提示,其他字段保持默认。
layui table 的 text 配置项在哪设
直接在 table.render() 的参数对象里加 text 字段,它是个对象,专门管“无数据”“加载中”这些提示文字。不是改 css、也不是动模板,更不用重写 done 回调去手动塞 dom。
常见错误是去翻 cols 或者 page 里找,其实它和 elemurlcols 是同级的顶层配置。
-
text必须是对象,不能是字符串(比如写成text: '暂无数据'会静默失效) - 只覆盖你明确写的字段,没写的仍用默认值(比如只设
none,loading还是原样) - 对服务端分页和前端分页都生效,但前提是数据真的为空(即
data数组长度为 0 或count为 0)
怎么只改“暂无数据”而不动其他提示
就只配 none 这一个 key,别的别碰。Layui 的 text 对象默认长这样:
text: {
none: '暂无数据'
}
所以你只要传入:
text: {
none: '啥也没查到,请换个条件试试'
}
注意点:
- 值必须是字符串,不能是函数或 HTML 片段(不支持插值或 DOM 节点)
- 中文引号、全角空格、换行符都会原样显示,别手误粘了 invisible 字符
- 如果表格初始化后才动态改这个文字,得用
table.reload()并传入完整新配置,不能只改text.none
为什么改了 text.none 还是显示默认文字
大概率是这三件事之一没做对:
- 没把
text放在table.render()的第一层参数里(比如错塞进cols[0]或page里) - 接口返回了数据,但格式不对(例如后端返回
{data: null, count: 0},而 Layui 期望data: []),导致它根本没触发“无数据”逻辑 - 用了自定义
cell模板或templet,且模板里硬编码了“暂无数据”,那配置项就完全不起作用了
验证方法:打开浏览器控制台,在表格渲染后执行 layui.table.config.text,看输出是否是你设的值——如果不是,说明配置压根没进去。
兼容性和版本注意点
text 配置从 Layui 2.5.0 开始支持,老版本(如 2.4.x)不识别,会直接忽略。如果你用的是 CDN 上的 layui.all.js 但没留意版本,可能一直以为是写法问题。
另外,移动端小屏下文字过长会自动省略,不会换行;如果想强制换行,得额外加 CSS(比如给 .layui-table-view .layui-table-body .layui-none 设 white-space: normal),但这是样式层的事,跟 text 配置无关。
最常被忽略的是:这个配置只影响表格主体区域的占位文字,表头、分页栏、工具栏里的提示语(比如“共 0 条”)不受影响,它们得另配 limitlimits 或改语言包。


















