您的位置:首页 > Web前端 > JavaScript

2013.12.04 JS实现单元格的合并

2013-12-04 17:09 232 查看


内容见:《合并内容相同的单元格

核心js:

merge2(3);merge2(2);merge2(1);merge2(0);

// 问:为什么要先处理1,再处理0呢?

// 答:如果先处理0这一列,则第一次处理结束之后,会删除一部分<td>标签,

// 则第二列部分<td>标签会成为第一列,这将影响下次对第二列的处理;相反

// 如果先处理1,即处理第二列,处理完成之后,第三列部分数据会成为第二列

// 数据,但是这对第一列的数据并没有影响

// index为列的下标

// 合并内容相等的相邻列

// 合并原理:如果相邻列相等,则计数器加1,直到相邻列不相等,则合并

function merge2(index) {

var count = 0;// 计数器

var $firstTd = $('table.merge2 tr td:eq(' + index + ')');// 第一行指定列作为目标列

var firstContent = $firstTd.text();

$('table.merge2 tr').each(function(i) {// 遍历每一行,取得指定列的值

$secondTd = $(this).find('td:eq(' + index + ')');

var secondContent = $secondTd.text();

if(firstContent == secondContent) {// 值相等

count ++;

if(count > 1) {// count > 1表示,已经至少有2列值相等,则需要先移除重复的一列,然后合并

$secondTd.remove();

$firstTd.attr('rowspan',count);

}

} else {
// 值不等,将此时的值作为目标值,进入到下一轮比较

count=1;

firstContent = secondContent;

$firstTd = $secondTd;

}

});

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: