整个table合并

/**
* 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);
posted @ 2016-08-17 14:56  我是谁呢  阅读(168)  评论(0)    收藏  举报