当前位置: 首页
前端开发
Layui表格怎么给某一行添加删除线样式

Layui表格怎么给某一行添加删除线样式

热心网友 时间:2026-04-15
转载

Layui Table行内删除线核心方案:done回调配合CSS类精准控制

Layui Table 如何为指定行添加删除效果(text-decoration: line-through)

许多开发者在尝试通过 rowStylecellStyle 配置为表格行添加删除线时,常发现样式并未生效。这主要是因为Layui Table的渲染机制决定了样式注入时机与实际DOM生成的差异。要实现稳定可靠的删除线效果,最佳路径是从数据标识出发,在DOM渲染完成后通过CSS类进行批量控制。

免费影视、动漫、音乐、游戏、小说资源长期稳定更新! 👉 点此立即查看 👈

rowStyle 设置 textDecoration 失效的根本原因

样式作用域是关键所在。Layui的 rowStyle 回调函数所返回的CSS样式,仅仅会被应用到 标签的 style 属性中。而 text-decoration 这类文本修饰属性,必须直接作用于包含文字内容的元素(如 或内部的

),浏览器默认不会将父级tr的文本样式自动继承到单元格内部。

  • rowStyle 生成的样式仅挂载于 层级,对子元素无强制继承效力。
  • cellStyle 虽能控制 ,但Layui默认会在td内包裹一层

    ,文字实际位于该div内部。

  • 因此,可靠方案有两种:一是在数据源中标记状态字段,渲染后通过CSS类统一控制样式;二是在表格渲染完成的回调中手动为对应DOM元素添加样式类。

推荐方案:利用 done 回调与CSS类实现精准样式控制

该方法的核心逻辑是在表格数据渲染完毕后,遍历所有行元素,依据数据中的状态字段(例如 isDeleted: true)为对应的 添加特定CSS类名,再通过CSS规则统一定义删除线样式,实现样式与数据的解耦。

table.render({
  elem: '#demo',
  url: '/api/list',
  cols: [[
    {field: 'id', title: 'ID'},
    {field: 'name', title: '姓名'}
  ]],
  done: function(res, curr, count) {
    // 假设数据中存在 isDeleted 字段标识删除状态
    this.elem.next('.layui-table-box').find('tbody tr').each(function(i, tr) {
      const data = res.data[i];
      if (data && data.isDeleted) {
        $(tr).addClass('deleted-row');
      }
    });
  }
});

对应的CSS样式定义需覆盖单元格及其内部所有元素:

.deleted-row .layui-table-cell,
.deleted-row .layui-table-cell * {
  text-decoration: line-through !important;
}
  • 使用 !important 是必要的,因为Layui Table单元格自带内联样式和高优先级类,需确保自定义样式能够覆盖默认样式。
  • 选择器 .deleted-row .layui-table-cell * 旨在覆盖单元格内可能存在的嵌套元素(例如图标与文本混合的场景),确保删除线效果完整。
  • 删除线通常作为静态状态标识,建议避免与 :hover 等动态伪类混淆,以保持视觉逻辑清晰。

原生JavaScript实现方案:不依赖jQuery的 done 回调操作

若项目中未引入jQuery,可通过原生DOM API在 done 回调中实现相同功能。关键在于通过容器元素及类名选择器准确定位到表格主体与行元素。

done: function(res, curr, count) {
  const tableBox = this.elem.nextElementSibling.querySelector('.layui-table-box');
  const rows = tableBox.querySelectorAll('tbody tr');
  rows.forEach((tr, i) => {
    const data = res.data[i];
    if (data?.isDeleted) {
      tr.classList.add('deleted-row');
    }
  });
}
  • 上述代码依赖 res.data[i] 与行索引严格对应,适用于未启用分页、排序等可能导致DOM顺序变动的场景。若启用了这些功能,建议使用数据ID等唯一标识进行关联匹配。
  • 对于服务端排序、筛选等动态场景,更健壮的方式是在渲染时通过 tr.dataset.id = data.id 绑定数据标识,再基于此进行状态判断与样式添加。
  • 出于性能考虑,在 done 回调中应尽量减少DOM查询频率,使用批量操作(如 classList.add)以获得更佳渲染效率。

总结而言,Layui Table在样式自定义方面提供的直接接口(如 rowStylecellStyle)有其使用限制。对于删除线这类精确到行内文本的样式需求,采用“数据标记 + 渲染后CSS类控制”的方案最为稳定可靠。避免在列配置中尝试复杂的内联样式字符串,可显著减少不必要的调试成本,提升开发效率。

来源:https://www.php.cn/faq/2305294.html

游乐网为非赢利性网站,所展示的游戏/软件/文章内容均来自于互联网或第三方用户上传分享,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系youleyoucom@outlook.com。

同类文章
更多
Html5移动端禁止长按保存图片的三种实现方法

Html5移动端禁止长按保存图片的三种实现方法

1 问题描述 在移动端H5页面开发中,许多开发者都曾面临一个常见的困扰:当用户在手机浏览器中长按页面内的图片时,系统会自动弹出“保存图像”或类似的操作菜单,这通常并非产品期望的交互行为。下图清晰地展示了这一现象。 因此,寻找一种有效的方法来禁止或屏蔽移动端浏览器中图片的长按保存功能,成为了提升页面

时间:2026-04-15 15:35
HTML5使用<blockquote>标签实现段落缩进效果

HTML5使用<blockquote>标签实现段落缩进效果

使用标签实现段落缩进 在网页设计与排版中,实现文本的段落缩进是提升内容可读性和页面层次感的常见需求。HTML中的标签为此提供了一种语义化且灵活的解决方案。该标签的独特之处在于,每一次使用都会使包含的文本产生一层缩进,并且支持多层嵌套。这意味着开发者可以通过简单的标签叠加,轻松控制不同段落的缩进级别,

时间:2026-04-15 15:30
HTML5之高度塌陷问题的解决

HTML5之高度塌陷问题的解决

CSS浮动详解:高度塌陷成因分析与五大高效解决策略 在前端CSS布局实践中,浮动元素引发的“高度塌陷”是一个普遍且经典的布局难题。简而言之,当子元素应用浮动属性后,其父容器会因无法正常计算浮动子元素的高度,从而出现视觉上高度“坍塌”的现象。 现象解析:浮动如何导致容器高度丢失 为了更好地理解这一现象

时间:2026-04-15 15:00
HTML行内元素与块级元素有哪些及区别详解

HTML行内元素与块级元素有哪些及区别详解

面试经典考题解析:HTML行内元素与块级元素的核心区别 许多前端开发者在面试中都会遇到这样一个基础但关键的问题:“HTML行内元素有哪些?它们与块级元素有什么区别?”尽管标签语义化至关重要,但深入理解元素在文档流中的根本特性——行内与块级差异,才是构建正确布局的基石。若仅能回答一两个标签名称,往往会

时间:2026-04-15 14:29
浅析HTML 悬浮float的用法

浅析HTML 悬浮float的用法

CSS浮动属性Float用法全面解析与实战技巧 在前端开发中,实现元素左右浮动定位的核心CSS代码分别是 float:left;(左浮动)和 float:right;(右浮动)。这两种浮动属性是网页布局设计中的基础且关键的工具,掌握它们对于构建灵活、响应式的页面结构至关重要。 什么是CSS浮动?深入

时间:2026-04-15 14:20
热门专题
更多
刀塔传奇破解版无限钻石下载大全 刀塔传奇破解版无限钻石下载大全
洛克王国正式正版手游下载安装大全 洛克王国正式正版手游下载安装大全
思美人手游下载专区 思美人手游下载专区
好玩的阿拉德之怒游戏下载合集 好玩的阿拉德之怒游戏下载合集
不思议迷宫手游下载合集 不思议迷宫手游下载合集
百宝袋汉化组游戏最新合集 百宝袋汉化组游戏最新合集
jsk游戏合集30款游戏大全 jsk游戏合集30款游戏大全
宾果消消消原版下载大全 宾果消消消原版下载大全
  • 日榜
  • 周榜
  • 月榜
热门教程
更多
  • 游戏攻略
  • 安卓教程
  • 苹果教程
  • 电脑教程