You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

能否移除表格中的</tr><tr>标签,将所有表格内容合并到同一行展示?

解决方案

你的思路是可行的,但直接操作HTML字符串替换标签容易因标签属性、换行、空格等问题失效,使用DOM节点操作的方式稳定性和兼容性更高,核心逻辑是把拆分的多个行内的所有单元格合并到第一行,再删除多余空行。

具体可直接使用的代码

如果你的平台允许插入自定义脚本,直接粘贴以下代码即可:

// 等待页面加载完成后执行逻辑
window.addEventListener('load', function() {
  // 定位目标表格,注意ID里的点为普通字符,直接传入即可
  const targetTable = document.getElementById("table.multi-cols");
  // 找不到目标表格时直接终止
  if (!targetTable) return;

  const allRows = targetTable.querySelectorAll('tr');
  // 只有一行不需要处理
  if (allRows.length <= 1) return;

  // 取第一行作为承载所有列的容器
  const firstRow = allRows[0];

  // 遍历剩下的所有行,把单元格转移到第一行后删除空行
  for (let i = 1; i < allRows.length; i++) {
    const currentRow = allRows[i];
    while (currentRow.firstChild) {
      firstRow.appendChild(currentRow.firstChild);
    }
    currentRow.remove();
  }
});

异步加载表格兼容版本

如果你的平台是页面加载完成后才异步渲染表格,使用以下版本,会自动定时检测表格是否生成:

const checkTimer = setInterval(function() {
  const targetTable = document.getElementById("table.multi-cols");
  if (targetTable) {
    clearInterval(checkTimer);
    const allRows = targetTable.querySelectorAll('tr');
    if (allRows.length <= 1) return;
    const firstRow = allRows[0];
    for (let i = 1; i < allRows.length; i++) {
      const currentRow = allRows[i];
      while (currentRow.firstChild) {
        firstRow.appendChild(currentRow.firstChild);
      }
      currentRow.remove();
    }
  }
}, 300); // 每300毫秒检测一次,可根据需要调整间隔

注意事项

  • 该方案不会修改表格原有单元格的属性和样式,仅调整行和单元格的层级关系
  • 不推荐直接替换</tr><tr>字符串的原因:如果行标签带有自定义属性、标签间存在换行或空格,直接字符串替换大概率会失效,DOM操作的适配性更强

内容的提问来源于stack exchange,提问作者Victor

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.24 09:45:04