动态计算并设置colspan值

我在单元格中有一个包含冗余数据的表。 [左表]

我需要把他们加入一个单元格。 [右表]

插图

表结构:

Value1: A A A       B B
Value2:     C C     D  

我能够隐藏冗余单元格,但我需要以某种方式设置colspan。

 $(document).ready(function () { var all = $('.green'); var seen = {}; all.each(function () { var txt = $(this).text(); if (seen[txt]) { $(this).hide(); } else { seen[txt] = true; } }); }); 

谢谢。

 var first; var prev = undefined; var colspan = 1; var setColspan = function () { first.attr('colspan', colspan); colspan = 1; } all.each(function () { var txt = $(this).text(); if (prev === txt) { colspan += 1; $(this).remove(); } else { // doesnt match, set colspan on first and reset colspan counter if (colspan > 1) { setColspan(); } first = $(this); prev = txt; } }); if (colspan > 1) { setColspan(); } 

认为它做你想要的,检查匹配列值的连续块,如果找到匹配,它将删除它,当它没有找到匹配并且colspan足够大时它在列表中的第一个上设置colspan然后重置。 如果连续值跨越一行的末尾并进入下一行的开头,则它不起作用。 如果是这样的话,我会想要一行一行地做

如果最后一组列也是连续的,则使用边缘大小写更新。 在那种情况下,它不会设置colspan。

你可以设置colspan,

 var cell=$([selector]); cell.attr('colspan',N); 

然后删除以下兄弟姐妹

 var sib=cell.next(); for(var i=0;i