如果不在IE下 你可以试试下边这个代码:不知道是不是你想要的效果
<html>
<head>
</head>
<body>
<script type='text/javascript'>
var hasChanged=false;
function change(){
var tr=document.getElementById("test");
if(!hasChanged){
tr.innerHTML="<td>1</td><td>2</td><td>3</td><td>4</td>";
hasChanged=true;
return;
} else {
tr.innerHTML="<td colspan='4'>1</td>";
hasChanged=false;
return;
}}
</script>
<table border=1 width='200px'>
<tr id='test'><td colspan="4">1</td></tr>
<tr><td>1</td>
<td> </td>
<td> </td>
<td> </td>
</tr>
<tr><td>1</td>
<td> </td>
<td> </td>
<td> </td>
</tr>
<tr><td>1</td>
<td> </td>
<td> </td>
<td> </td>
</tr>
</table>
<input type='button' value='change' onclick='change()'>
</body>
</html>
<html>
<head>
</head>
<body>
<script type='text/javascript'>
var hasChanged=false;
function change(){
var tr=document.getElementById("test");
if(!hasChanged){
tr.innerHTML="<td>1</td><td>2</td><td>3</td><td>4</td>";
hasChanged=true;
return;
} else {
tr.innerHTML="<td colspan='4'>1</td>";
hasChanged=false;
return;
}}
</script>
<table border=1 width='200px'>
<tr id='test'><td colspan="4">1</td></tr>
<tr><td>1</td>
<td> </td>
<td> </td>
<td> </td>
</tr>
<tr><td>1</td>
<td> </td>
<td> </td>
<td> </td>
</tr>
<tr><td>1</td>
<td> </td>
<td> </td>
<td> </td>
</tr>
</table>
<input type='button' value='change' onclick='change()'>
</body>
</html>
如果涉及到合并的话,那估计就麻烦一些了...
要操作colspan
rowspan什么的..
还要操作些其它的东西,怪麻烦的...
哪有啊...原先做布局一直用table.所以习惯了欠套....:D
很少用合并单元格
thanks!
其实看你怎么实现,你可以通过动态删除增加来做呀,没有不要修改rowspan clospan属性的比方: 一个大的单元格,在这个row中插入3列,让每个宽度为 table.width/4 ;就是 4列 恢复: 点击按钮,把后面的三列干掉,把相应的里面文本元素拷贝到第一列就可以了!
不过这样样式要自己设置下...
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>测试</title>
</head>
<body>
<script type='text/javascript'>
var change = function (id, state) {
var cell = document.getElementById(id), defaultValue = ''
if (cell.getAttribute('_rowspan') == state) return;
cell.setAttribute('_rowspan', state);
if (state) {
//拆分
defaultValue = cell.innerHTML;
cell.innerHTML = '<table border="1" width="100%"><tr>' + new Array(5).join('<td> <\/td>') + '<\/tr><\/table>';
cell.getElementsByTagName('td')[0].innerHTML = defaultValue;
} else {
//还原
defaultValue = cell.getElementsByTagName('td')[0].innerHTML;
cell.innerHTML = defaultValue;
}
};
</script>
<table border=1 width='200px'>
<tr>
<td id='cell'>特定的行</td>
</tr>
<tr>
<td>1</td>
</tr>
<tr>
<td>2</td>
</tr>
<tr>
<td>3</td>
</tr>
</table>
<input type='button' value='拆分' onclick='change("cell", 1)'>
<input type='button' value='还原' onclick='change("cell", 0)'>
</body>
</html>
测试了下没问题,在op下分割可以,合并不行,对这个浏览器不是很了解,还不清楚是什么原因
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>无标题文档</title>
<script type="text/javascript">
function $(strId){
return document.getElementById(strId);
}function splitTd(oTd){
var i,nTrCount,nCellIndex;
var oTr=oTd.parentNode;
var oNextTd=oTr.cells[oTd.cellIndex+1];
var oTbody=oTr.parentNode;
var oNewTd;
oNewTd=document.createElement("td");
oNewTd.innerHTML="1"
oTr.insertBefore(oNewTd,oNextTd);
oNewTd=document.createElement("td");
oNewTd.innerHTML="2"
oTr.insertBefore(oNewTd,oNextTd);
oNewTd=document.createElement("td");
oNewTd.innerHTML="3"
oTr.insertBefore(oNewTd,oNextTd);
nTrCount=oTr.parentNode.rows.length;
nCellIndex=oTd.cellIndex;
for(i=0;i<nTrCount;i++){
if(oTbody.rows[i]!=oTr){
oTbody.rows[i].cells[nCellIndex].setAttribute("colSpan",4);
}
}
}function mergeTd(oTd){
var i,nTrCount,nCellIndex=oTd.cellIndex;
var oTr=oTd.parentNode;
var oTbody=oTr.parentNode;
oTd.innerHTML+=oTr.cells[nCellIndex+1].innerHTML
oTr.removeChild(oTr.cells[nCellIndex+1]);
oTd.innerHTML+=oTr.cells[nCellIndex+1].innerHTML
oTr.removeChild(oTr.cells[nCellIndex+1]);
oTd.innerHTML+=oTr.cells[nCellIndex+1].innerHTML
oTr.removeChild(oTr.cells[nCellIndex+1]);
nTrCount=oTr.parentNode.rows.length;
for (i=0;i<nTrCount;i++){
if(oTbody.rows[i]!=oTr){
oTbody.rows[i].cells[nCellIndex].setAttribute("colSpan",1);
}
}
}
</script>
</head>
<body>
<input type="button" name="btnSplit" id="btnSplit" value="分割" onclick="splitTd($('mytd'))"/>
<input type="button" name="btnJoin" id="btnJoin" value="合并" onclick="mergeTd($('mytd'))"/>
<table width="61%" border="1" align="center" cellpadding="0" cellspacing="0" id="mytable1">
<tr>
<td width="9%">表头1</td>
<td width="69%">表头2</td>
<td width="14%">表头3</td>
<td width="8%">表头4</td>
</tr>
<tr>
<td> </td>
<td id="mytd">cc</td>
<td>ddd</td>
<td> </td>
</tr>
<tr>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
</tr>
<tr>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
</tr>
</table>
</body>
</html>
能详细说说吗?