例如
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次。想把第一列的三行合并单元格,应该怎么弄,要详细的代码
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次。想把第一列的三行合并单元格,应该怎么弄,要详细的代码
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);
给你写了个小函数,只能合并横向的,纵向的没去研究。
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;
}
}
};