/* vMergeCell :纵向(垂直方向,vertical)合并(Merge)Table单元格(Cell) 参数1 TableID :要操作的table的id; 参数2 ColList :要纵向合并的列IndexID的列表(例如:"0,1"); 注意事项: 1.要操作的table须要有id,且不能与其它页面元素的ID向相同; 2.依据ColList第一个值合并,调整见42行注释 3.该函数强烈建议在window.onload()的调用 Yuanzy @2005-5-31 20:57 */ function vMergeCell(TableID,ColList) { var ColArray = ColList.split(","); var tTable = document.getElementById(TableID);//document.all[TableID]; var TableRowCnts=tTable.rows.length; var tmpA; var tmpB; var PerTxt = ""; var CurTxt = ""; var alertStr = ""; //for (j=0;j<=ColArray.length-1 ;j++ ) //遍历 要合并的列 ,并取得 其文本 //由于cell的indexID的排序由前至后(有左至右),为了不致影响,合并顺序为有后至前(倒序循环) for (j=ColArray.length-1;j>=0 ;j-- ) { //当循环至某新的列时,变量复位。 PerTxt=""; tmpA=1; tmpB=0; //从第一行(表头为第0行)开始循环,循环至行尾(溢出一位) for (i=1;i<=TableRowCnts ;i++ ) { if (i==TableRowCnts) { CurTxt=""; } else { //可以尝试将cells[0]中的0改成i,看看效果 CurTxt=tTable.rows[i].cells[0].innerHTML; } if (PerTxt==CurTxt) { tmpA+=1; } else { tmpB+=tmpA; tTable.rows[i-tmpA].cells[ColArray[j]].rowSpan = tmpA; for (a=i-tmpA+1;a<tmpB ;a++ ) { tTable.rows[a].deleteCell(ColArray[j]); } tmpA=1; } PerTxt=CurTxt; } } } 。