js控制單元格 行 列 相同內容合併
阿新 • • 發佈:2019-01-02
tabObjId:table 的id
cellindex :無效,可根據需要修改成有效。
beginRow:從第幾行開始,暫時預設傳0,其他未測試。
function SpanGrid(tabObjId, cellindex, beginRow) {
var colIndex = cellindex;var rowBeginIndex = beginRow;
var tabObj = document.getElementById(tabObjId);
if (tabObj != null) {
var i, j, m, k, q,w,e,r;
var intSpan;
var strTemp;
m = 0;
//這個For迴圈是合併行
for(k=0;k<tabObj.rows[0].cells.length; k++){colIndex=k;
for (i = rowBeginIndex; i < tabObj.rows.length; i++) {
intSpan = 1;
m++;
strTemp = tabObj.rows[i].cells[colIndex].innerText;
for (j = i + 1; j < tabObj.rows.length; j++) {
if (strTemp == tabObj.rows[j].cells[colIndex].innerText) {
intSpan++;
tabObj.rows[i].cells[colIndex].rowSpan = intSpan;
tabObj.rows[j].cells[colIndex].style.display = "none";
}
else {
break;
}
}
}
}
//這個For迴圈是合併列(無需合併列可刪除)
for (q = rowBeginIndex; q < tabObj.rows.length; q++) {
for(w=0;w<tabObj.rows[0].cells.length; w++){
intSpan = 1;
colspan = tabObj.rows[q].cells[w].rowSpan;
strTemp = tabObj.rows[q].cells[w].innerText;
if( "none" == tabObj.rows[q].cells[w].style.display){
continue;
}
for(e=w+1;e<tabObj.rows[q].cells.length; e++){
if( "none" == tabObj.rows[q].cells[e].style.display){
continue;
}
colspan1 =tabObj.rows[q].cells[e].rowSpan
if(strTemp == tabObj.rows[q].cells[e].innerText && ( colspan ==
colspan1)){
intSpan++;
tabObj.rows[q].cells[w].colSpan = intSpan;
tabObj.rows[q].cells[e].style.display = "none";
}
else {
break;
}
}
}
}
i = j - 1;
}
}