Javascript 控制單元格合併
阿新 • • 發佈:2018-12-30
///////////////////////////////////////////////
// 功能:合併表格
// 引數:tb--需要合併的表格ID
// 引數:colLength--需要對前幾列進行合併,比如,
// 想合併前兩列,後面的資料列忽略合併,colLength應為2
// 預設表示對全部列合併
// data: 2005.11.6
///////////////////////////////////////////////
function uniteTable(tb,colLength){
// 檢查表格是否規整
if (!checkTable(tb)) return;
var i=0;
var j=0 ;
var rowCount=tb.rows.length; // 行數
var colCount=tb.rows[0].cells.length; // 列數
var obj1=null;
var obj2=null;
// 為每個單元格命名
for (i=0;i<rowCount;i++){
for (j=0;j<colCount;j++){
tb.rows[i].cells[j].id="tb__" + i.toString() + "_" + j.toString();
}
}
// 逐列檢查合併
for (i=0;i<colCount;i++){
if (i==colLength) return;
obj1=document.getElementById("tb__0_"+i.toString())
for (j=1;j<rowCount;j++){
obj2=document.getElementById("tb__"+j.toString()+"_" +i.toString());
if (obj1.innerText == obj2.innerText){
obj1.rowSpan++;
obj2.parentNode.removeChild(obj2);
}else{
obj1=document.getElementById("tb__"+j.toString()+"_"+i.toString());
}
}
}
}
/////////////////////////////////////////
// 功能:檢查表格是否規整
// 引數:tb--需要檢查的表格ID
// data: 2005.11.6
/////////////////////////////////////////
function checkTable(tb){
if (tb.rows.length==0) return false;
if (tb.rows[0].cells.length==0) return false;
for (var i=0;i<tb.rows.length;i++){
if (tb.rows[0].cells.length != tb.rows[i].cells.length) return false;
}
return true;
}