如何用JS/jQuery移除嵌套div构成的Grid布局(非HTML表格)全N/A空行
解决方案
由于Grid布局的模拟表格没有原生<tr>作为行容器,你可以通过自定义行标识属性关联同属一行的所有单元格,实现和原表格相同的全N/A行移除逻辑,具体实现方式如下:
- 渲染Grid表格时,给同一行的所有单元格新增统一的自定义属性,比如
data-row-key,同属一行的单元格属性值保持一致,例如第一行所有单元格添加data-row-key="ship-weight",第二行添加data-row-key="dimensions"等,属性值可以用规格名的唯一标识,也可以用行序号。 - 调整原有JS逻辑,先提取所有不重复的行标识,逐行统计N/A单元格数量,判断是否需要移除整行即可:
// 先收集所有不重复的行标识 const rowKeys = new Set() $('.specnacheckcell').each(function() { rowKeys.add($(this).data('row-key')) }) // 逐行判断处理 rowKeys.forEach(rowKey => { const $rowCells = $(`.specnacheckcell[data-row-key="${rowKey}"]`) const totalCells = $rowCells.length const naTrue = $rowCells.find('.specnatrue').length if (naTrue >= totalCells) { // 整行都是N/A,移除当前行所有单元格 $rowCells.remove() } })
如果你的Grid布局是按行嵌套div的结构(即外层是行div,内层是单元格div,仅用Grid实现布局样式),不需要额外加自定义属性,直接把原有代码里的.specnacheckrow选择器换成你实际的行div类名,原有逻辑可完全复用。
内容的提问来源于stack exchange,提问作者GenoPeppino
相关产品推荐
相关产品推荐

