wangxiao9505 2021-11-23 14:37 采纳率: 0%
浏览 51

js写的合并table代码,rowspance设置成功了,但是没渲染上

/**
  * 合并单元格(如果结束行传0代表合并所有行)
  * @param table1    表格的ID
  * @param startRow  起始行
  * @param endRow    结束行
  * @param col   合并的列号,对第几列进行合并(从0开始)。第一行从0开始
 */
export default function mergeCell (table1, startRow, endRow, col) {
  var tb = document.getElementById(table1)
  if (!tb || !tb.rows || tb.rows.length <= 0) {
    return
  }
  if (col >= tb.rows[0].cells.length || (startRow >= endRow && endRow !== 0)) {
    return
  }
  if (endRow === 0) {
    endRow = tb.rows.length - 1
  }
  for (var i = startRow; i < endRow; i++) {
    var r1 = tb.rows[startRow].cells[0].innerHTML
    var r2 = tb.rows[i + 1].cells[0].innerHTML
    if (r1 + tb.rows[startRow].cells[col].innerHTML === r2 + tb.rows[i + 1].cells[col].innerHTML) {
      // 如果相等就合并单元格,合并之后跳过下一行
      tb.rows[i + 1].removeChild(tb.rows[i + 1].cells[col])
      console.log('tb.rows[startRow]', tb.rows[startRow].cells[col].rowSpan)
      tb.rows[startRow].cells[col].rowSpan = (tb.rows[startRow].cells[col].rowSpan) + 1
      console.log('tb.rows[startRow].cells[col].rowSpan', tb.rows[startRow].cells[col].rowSpan)
    } else {
      this.mergeCell(table1, i + 1, endRow, col)
      break
    }
  }
}

就是下图这样

img


img


img

  • 写回答

2条回答 默认 最新

  • 技术专家团-Bamboo 2021-11-23 14:40
    关注

    这不是要合并两列吗?那不应该是colSpan

    评论

报告相同问题?

问题事件

  • 修改了问题 12月3日
  • 修改了问题 12月3日
  • 创建了问题 11月23日

悬赏问题

  • ¥15 python随机森林对两个excel表格读取,shap报错
  • ¥15 基于STM32心率血氧监测(OLED显示)相关代码运行成功后烧录成功OLED显示屏不显示的原因是什么
  • ¥100 X轴为分离变量(因子变量),如何控制X轴每个分类变量的长度。
  • ¥30 求给定范围的全体素数p的(p-2)/p的连乘积值
  • ¥15 VFP如何使用阿里TTS实现文字转语音?
  • ¥100 需要跳转番茄畅听app的adb命令
  • ¥50 寻找一位有逆向游戏盾sdk 应用程序经验的技术
  • ¥15 请问有用MZmine处理 “Waters SYNAPT G2-Si QTOF质谱仪在MSE模式下采集的非靶向数据” 的分析教程吗
  • ¥15 adb push异常 adb: error: 1409-byte write failed: Invalid argument
  • ¥15 nginx反向代理获取ip,java获取真实ip