/**
* Created by shamochao 2016.8.17
*
* 合并表行
*
* 需要先引入jQuery
* .
*/
(function(window, undefined) {
function CcTable(cfg) {
var config = cfg || {};
this.get = function(n) {
return config[n];
}
this.set = function(n, v) {
config[n] = v;
}
this.init();
}
CcTable.prototype = {
init: function(){
if(!this.get("TABLE_ID")) {
throw new Error("表格id参数没传.");
return;
}
},
tableMerge: function(){
var tableId = this.get("TABLE_ID");
this.columnMerge(tableId)
},
columnMerge:function(tableId){
var allTd = $("#"+tableId).find("tr:eq(0)").find("td");
var length = allTd.size();
for(var i=0; i < length ; i++){
this.rowMerge(tableId,i);
}
},
rowMerge:function(tableId,column){
var allTr = $("#"+tableId).find("tr");
var length = allTr.size();
var span = 1;
var point = 1;
for (var i=1; i<length; i++) {
var text = $(allTr[i]).find("td:eq("+column+")").html();
var zeroText = $(allTr[i]).find("td:eq(0)").html();
var nextText = "";
var zeroNextText = "";
if (i+1 <= length) {
nextText = $(allTr[i+1]).find("td:eq("+column+")").html();
zeroNextText = $(allTr[i+1]).find("td:eq(0)").html();
if (text == nextText && text != '' && zeroNextText == zeroText && zeroNextText != "") {
span++;
} else {
var firstTdSpan = parseInt($(allTr[point]).find("td:eq(0)").attr("rowspan"));
if( firstTdSpan > span) {
span = 1;
point = i+1;
continue;
}
for (var j=1; j<span; j++) {
if (j == 1) {
$(allTr[point]).find("td:eq("+column+")").attr("rowspan", span+"")
}
$(allTr[point+j]).find("td:eq("+column+")").hide();
}
span = 1;
point = i+1;
}
}
}
}
};
window.CcTable = window.CcTable || CcTable;
})(window);