例如
for(var i=0;i<3;i++)
{
var newRow=ceshi.insertRow();
newCell=newRow.insertCell(-1);
newCell.innerText="refName";
newCell=newRow.insertCell(-1);
newCell.innerText="refName";
newCell=newRow.insertCell(-1);
newCell.innerHTML="refName"
}
我循环了3次。想把第一列的三行合并单元格,应该怎么弄,要详细的代码

解决方案 »

  1.   


            for(var i=0;i<3;i++) {
                var newRow=ceshi.insertRow();
                newCell = newRow.insertCell(0);
                newCell.innerHTML="refName1";
                newCell = newRow.insertCell(1);
                newCell.innerHTML="refName2";
                newCell = newRow.insertCell(2);
                newCell.innerHTML="refName3"
            }
            function uniteCell(row,from,to){//row行号,from从第几个开始个兵,to合并到第几个,没有的话默认最后
                var len = ceshi.rows[row].cells.length;
                to = to || len - 1;
                var curRow = ceshi.rows[row];
                while(second = ceshi.rows[row].cells[from+1] ){
                    curRow.cells[from].innerHTML += second.innerHTML;
                    curRow.removeChild(second);
                }
                curRow.cells[from].setAttribute('colSpan',to-from+1);
            }
            uniteCell(0,0);
            uniteCell(1,1);
    给你写了个小函数,只能合并横向的,纵向的没去研究。
      

  2.   

    window.onload = function(){
        var tab = document.getElementById("datatable");
        var name,rid
        name  ="",rid=0;
        count = 1;
        for(var i=1; i<tab.rows.length; i++){
            if(name == tab.rows[i].cells[1].innerHTML ){
                count++;
            }else{
                if(count > 1){ //合并
                    start = i - count;
                    tab.rows[start].cells[1].rowSpan  = count;
    tab.rows[start].cells[0].rowSpan  = count;
                    for(var j=start+1; j<i; j++){
                        for(var k=0; k<2; k++){
                            tab.rows[j].removeChild(tab.rows[j].cells[0]);
                        }
                    }
                    count = 1; tab.rows[i].cells[0].innerHTML=rid; 
    rid=parseInt(rid)+1;
                }/*else if(count == 1){
    tab.rows[i].cells[0].innerHTML=rid; 
    rid=parseInt(rid)+1;
    }*/
                name = tab.rows[i].cells[1].innerHTML;    
     
            }
        }
        
    };