有前置条件判断:
jQuery.fn.rowspan1 = function (colname, condtioncolname, tableObj, colspan) {
var colIdx; var condtionIdx;
for (var i = 0, n = tableObj.columns.length; i < n; i++) {
if (tableObj.columns[i]["columnname"] == colname) {
colIdx = i < colspan ? 0 : i - colspan;
break;
}
}
for (var i = 0, n = tableObj.columns.length; i < n; i++) {
if (tableObj.columns[i]["columnname"] == condtioncolname) {
condtionIdx = i < colspan ? 0 : i - colspan;
break;
}
}
return this.each(function () {
var that;
var colthis, colthat;
$('tr', this).each(function (row) {
$('td:eq(' + condtionIdx + ')', this).filter(':visible').each(function (col) {
if (that != null && $(this).html() == $(that).html()) {
console.info($(this).html() == $(that).html());
//rowspan = $(that).attr("rowSpan");
//if (rowspan == undefined) {
// $(that).attr("rowSpan", 1);
// rowspan = $(that).attr("rowSpan");
//}
//rowspan = Number(rowspan) + 1;
//$(that).attr("rowSpan", rowspan);
//$(this).hide();
colthis = $(this).parent().find('td:eq(' + colIdx + ')');
colthat = $(that).parent().find('td:eq(' + colIdx + ')');
console.info("html=" + colthis.html());
console.info("html1=" + colthat.html());
if (colthis.html() == colthat.html()) {
rowspan = colthat.attr("rowSpan");
if (rowspan == undefined) {
colthat.attr("rowSpan", 1);
rowspan = colthat.attr("rowSpan");
}
rowspan = Number(rowspan) + 1;
colthat.attr("rowSpan", rowspan);
colthis.hide();
}
} else {
that = this;
}
});
});
});
}
直接合并单元格,无前置条件判断:摘至网络
jQuery.fn.rowspan = function (colname, tableObj, colspan) {
var colIdx;
for (var i = 0, n = tableObj.columns.length; i < n; i++) {
if (tableObj.columns[i]["columnname"] == colname) {
colIdx = i < colspan ? 0 : i - colspan;
break;
}
}
return this.each(function () {
var that;
$('tr', this).each(function (row) {
$('td:eq(' + colIdx + ')', this).filter(':visible').each(function (col) {
if (that != null && $(this).html() == $(that).html()) {
rowspan = $(that).attr("rowSpan");
if (rowspan == undefined) {
$(that).attr("rowSpan", 1);
rowspan = $(that).attr("rowSpan");
}
rowspan = Number(rowspan) + 1;
$(that).attr("rowSpan", rowspan);
$(this).hide();
} else {
that = this;
}
});
});
});
}