百合心的代码:<table border="1" width="100%" id=tab1 onmousedown=tabStart() onmouseup=tabEnd()>
<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>
<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>
解决方案 »
- javascript二维数组的写法
- 我的页面中有很多<input type="text">标签,这些标签我均要设置onclick,onchange等事件函数,我该怎么设置?
- 点击隐藏层
- 求各种高手 编一些JS小程序给我这初学者练习,刚接触JS。。。。
- 求助:如何用javascript打开一个新窗口,具体要求见内容
- firefox中有没有能够动态使一个xml和一个xsl关联的函数
- 内存变量的问题
- 请问如何把内容导入到以有的Word模板的相应空格中去?
- 怎么判断每日的第一次启动浏览器
- 如何将数据库中的数据为Javascript所用。
- 如何实现可输入下拉框的定位问题,就是说我放在哪里都可以!发现//
- 如何通过XMLHTTP对象从服务器获取XML文档?望高手赐教??(服务器脚本和客户脚本如何实现)
<tr><td>a</td><td>b</td><td>c</td></tr>
<tr><td>a</td><td>e</td><td>f</td></tr>
<tr><td>a</td><td>g</td><td>h</td></tr>
</table><script language=javascript>
testTable.rows[1].deleteCell(0);
testTable.rows[2].deleteCell(0);
testTable.rows[0].cells[0].rowSpan=3;
</script>