关闭

2013.12.04 JS实现单元格的合并

599人阅读 评论(0) 收藏 举报
分类:


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

核心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;
}
});
}

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:80944次
    • 积分:2024
    • 等级:
    • 排名:第19963名
    • 原创:97篇
    • 转载:5篇
    • 译文:28篇
    • 评论:5条
    最新评论