try something like this:<table id="tbl" border="1" cellpadding="0" cellspacing="0">
<tr><td>hello</td><td>world</td>><td>hello</td><td>world</td></tr>
<tr><td>hello</td><td><b>china</b></td><td>hello</td><td>china</td></tr>
</table>
<input type="button" value="merge 2nd row, 1,2,3 cells" onclick="merge(1,0,2)">
<script language="javascript">
function merge(nRow, nColStart, nColEnd)
{
var rows = tbl.rows;
if (nRow < 0 || nRow >= rows.length)
return; var cells = rows[nRow].cells;
if (nColStart < 0 || nColStart >= cells.length || nColEnd < 0 || nColEnd >= cells.length ||
nColStart > nColEnd)
return; var s= "";
for (var i=nColStart; i <=nColEnd; i++)
s += cells[i].innerHTML + " "; for (var i=nColStart; i <nColEnd; i++)
rows[nRow].deleteCell(nColStart); rows[nRow].cells[nColStart].colSpan = nColEnd - nColStart + 1;
rows[nRow].cells[nColStart].innerHTML = s;
}
</script>
<tr><td>hello</td><td>world</td>><td>hello</td><td>world</td></tr>
<tr><td>hello</td><td><b>china</b></td><td>hello</td><td>china</td></tr>
</table>
<input type="button" value="merge 2nd row, 1,2,3 cells" onclick="merge(1,0,2)">
<script language="javascript">
function merge(nRow, nColStart, nColEnd)
{
var rows = tbl.rows;
if (nRow < 0 || nRow >= rows.length)
return; var cells = rows[nRow].cells;
if (nColStart < 0 || nColStart >= cells.length || nColEnd < 0 || nColEnd >= cells.length ||
nColStart > nColEnd)
return; var s= "";
for (var i=nColStart; i <=nColEnd; i++)
s += cells[i].innerHTML + " "; for (var i=nColStart; i <nColEnd; i++)
rows[nRow].deleteCell(nColStart); rows[nRow].cells[nColStart].colSpan = nColEnd - nColStart + 1;
rows[nRow].cells[nColStart].innerHTML = s;
}
</script>
解决方案 »
- chrome下如何用js设置cookie
- 如何用js或jsp获行访客的ip地址信息
- 取不到js对象里面的值, 请大家帮忙。
- js读取xml文件,赋值给selec控件
- 为什么这个js不执行?
- 关于页面设计的一个问题?
- 补贴送分,请 xkou(九天神龙) 和 ops2000(吾痴石) 跟贴接分。
- 怎样打开页面就自动按下某个按扭!请大家帮助!
- HTC控件中的对象,比如一个INPUT TYPE=TEXT 对象,可不可以在调用HTC控件外面引用它的值?
- extjs combobox中怎么缩小fieldLabel跟下拉框之间的距离
- 怎样将一个窗体的文本内容传到下一个窗体?
- 100分求一个验证EMAIL的正则表达式
<tr>
<td width="25%">111</td>
<td width="25%">111</td>
<td width="25%"> </td>
<td width="25%"> </td>
</tr>
<tr>
<td width="25%">222</td>
<td width="25%"> </td>
<td width="25%"> </td>
<td width="25%"> </td>
</tr>
<tr>
<td width="25%"> </td>
<td width="25%"> </td>
<td width="25%"> </td>
<td width="25%"> </td>
</tr>
</table>
<p>从第<input type="text" name="col1" size="4">列到第<input type="text" name="col2" size="4">列
从第<input type="text" name="row1" size="4">行到第<input type="text" name="row2" size="4">行<input type="button" value="合并" onclick=doTab()></p>
<script>
function doTab(){
x1=col1.value-1;
x2=col2.value-1;
y1=row1.value-1;
y2=row2.value-1;
if (x1==x2 && y1==y2) return;
htmlstr="";
xspan=0;
yspan=0;
for (i=x1;i<=x2;i++) xspan+=tab1.rows[y1].cells[i].colSpan;
for (i=y1;i<=y2;i++) yspan+=tab1.rows[i].cells[x1].rowSpan;
for (i=y1;i<=y2;i++) {
htmlstr+="<br>";
for(j=x1;j<=x2;j++){
htmlstr+=tab1.rows[i].cells[j].innerHTML;
}
}
htmlstr=htmlstr.substr(4);
for (i=y1;i<=y2;i++){
j=x1;
while (j<x2){
tab1.rows[i].deleteCell(x1);
j++;
}
tab1.rows[i].cells[x1].colSpan=xspan;
}
for (i=y2;i>y1;i--){
tab1.rows[i].deleteCell(x1);
}
tab1.rows[y1].cells[x1].rowSpan=yspan;
tab1.rows[y1].cells[x1].innerHTML=htmlstr;
//alert(htmlstr);
}
function tabStart(){
obj=window.event.srcElement;
col1.value=obj.cellIndex+1;
col2.value=col1.value;
row1.value=obj.parentElement.rowIndex+1;
row2.value=row1.value;
}
function tabEnd(){
obj=window.event.srcElement;
col2.value=obj.cellIndex+1;
row2.value=obj.parentElement.rowIndex+1;
}
</script>