当前位置:首页 > JavaScript

js实现表格合并

2026-02-02 15:09:50JavaScript

实现表格合并的方法

在JavaScript中实现表格合并通常涉及操作DOM元素,合并相邻的相同单元格。以下是几种常见的方法:

使用原生JavaScript合并行

通过遍历表格的行和列,检查相邻单元格内容是否相同,若相同则进行合并。

js实现表格合并

function mergeCells(tableId, columnIndex) {
    const table = document.getElementById(tableId);
    let previousText = '';
    let startRow = 0;

    for (let i = 0; i < table.rows.length; i++) {
        const currentText = table.rows[i].cells[columnIndex].innerText;
        if (currentText === previousText) {
            table.rows[i].deleteCell(columnIndex);
            table.rows[startRow].cells[columnIndex].rowSpan++;
        } else {
            previousText = currentText;
            startRow = i;
        }
    }
}

使用jQuery简化操作

如果项目中已引入jQuery,可以更简洁地实现合并功能。

js实现表格合并

function mergeCells(tableId, columnIndex) {
    $(`#${tableId} tr`).each(function() {
        const currentText = $(this).find('td').eq(columnIndex).text();
        if (currentText === $(this).prev().find('td').eq(columnIndex).text()) {
            $(this).find('td').eq(columnIndex).remove();
            $(this).prev().find('td').eq(columnIndex).attr('rowspan', 
                parseInt($(this).prev().find('td').eq(columnIndex).attr('rowspan') || 1) + 1);
        }
    });
}

合并列的实现

合并列的逻辑与合并行类似,但需要横向遍历单元格。

function mergeColumns(tableId, rowIndex) {
    const table = document.getElementById(tableId);
    let previousText = '';
    let startCol = 0;

    for (let i = 0; i < table.rows[rowIndex].cells.length; i++) {
        const currentText = table.rows[rowIndex].cells[i].innerText;
        if (currentText === previousText) {
            table.rows[rowIndex].cells[i].remove();
            table.rows[rowIndex].cells[startCol].colSpan++;
        } else {
            previousText = currentText;
            startCol = i;
        }
    }
}

动态表格的合并处理

对于动态生成的表格,可以在数据渲染完成后调用合并函数。

function renderTable(data) {
    const table = document.getElementById('dynamic-table');
    data.forEach(item => {
        const row = table.insertRow();
        row.insertCell().textContent = item.name;
        row.insertCell().textContent = item.category;
    });
    mergeCells('dynamic-table', 1); // 合并第二列
}

注意事项

  • 合并操作会修改DOM结构,可能影响后续的单元格索引。
  • 合并后的单元格需通过rowSpancolSpan属性正确设置跨行/列数。
  • 对于复杂表格,建议先备份原始数据以便恢复。

以上方法可根据实际需求调整,适用于大多数表格合并场景。

标签: 表格js
分享给朋友:

相关文章

js实现倒计时

js实现倒计时

实现倒计时的基本方法 使用 JavaScript 实现倒计时功能可以通过 setInterval 或 setTimeout 结合日期计算来完成。以下是几种常见的实现方式: 使用 setInterva…

js实现跳转

js实现跳转

使用 window.location 跳转 通过修改 window.location.href 实现页面跳转,这是最常用的方法。 window.location.href = 'https://…

js实现列表

js实现列表

使用 JavaScript 实现列表 JavaScript 提供了多种方式来实现列表功能,包括数组操作、DOM 元素动态生成等。以下是几种常见的实现方法: 使用数组存储列表数据 数组是 JavaSc…

js实现报表

js实现报表

使用JavaScript实现报表 在JavaScript中实现报表功能可以通过多种方式完成,常见的方法包括使用原生JavaScript、第三方库(如Chart.js、D3.js)或结合后端数据渲染。以…

vue element实现表格

vue element实现表格

Vue + Element UI 实现表格 Element UI 提供了强大的表格组件 el-table,结合 Vue 可以快速实现数据展示、排序、筛选等功能。 基础表格实现 安装 Element…

js树实现

js树实现

树的基本概念 树是一种非线性的数据结构,由节点和边组成。每个节点包含一个值和指向子节点的引用。树的顶部节点称为根节点,没有子节点的节点称为叶节点。 树的实现方式 在JavaScript中,树可以通过…