动态计算并设置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