js+html:table td合并单元格后,动态新增一行,能保持td合并的状态吗?js(jquery)代码该如何写?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了js+html:table td合并单元格后,动态新增一行,能保持td合并的状态吗?js(jquery)代码该如何写?相关的知识,希望对你有一定的参考价值。

效果如图。

要求 火狐 ie 兼容。。。拜托各位大侠了。。。

增加行时,js判断表中的行数,然后第一td设置相应的 rowspan即可,如5行,则 rowspan="5" 参考技术A 兄弟你这个问题解决了吗,我也有这么一个需求了,能分享下js不

js动态添加行怎么合并单元格

参考技术A colspan, rowspan

参考技术B 一般考官都喜欢考这个问题
最能体现你的基本功,的确要用到colspan,rowspan,但是关键的dom的一些操作
如果单独colspan,rowspan,表格会变形
给你个例子吧!我自己写的,图方便,只合并了固定的单元格,自己改吧!
<html>
<head>
<title>table operation</title>

</head>
<body>
<table id='newtable'>
</table>
<table id='table'>
<tr><td><button onclick="insRow();">insert row </button></td><td><button onclick="deleteRow();">delete row</button><input type="text" id='index'/></td></tr>
<tr><td><button onclick="insertCell();">insert cell</button></td><td><button onclick="deleteCell();">delete cell</button><button onclick="merge();">merge</button></td></tr>

</table>
</body>
<html>
<script>
newtable=document.getElementById('newtable');
newtable.border="1px";
newtable.width="500px";
for (i=1;i<10;i++)

row=document.createElement('tr');
row.id=i;
for (j=1;j<10;j++)

cell=document.createElement('td');
cell.id=i+"/"+j;
cell.innerHTML=cell.id;
row.appendChild(cell);
newtable.appendChild(row);
function insRow()
row_length=newtable.rows.length;
newrow=document.createElement('tr');
newrow.id=row_length+1;
for (var i=1;i<10;i++)
var newcell=document.createElement('td');
newcell.innerHTML=newrow.id+'/'+i;
newrow.appendChild(newcell);

newtable.appendChild(newrow);

function deleteRow()
//alert(newtable.rows[4].rowIndex);
var index=document.getElementById('index').value-1;//ie,chrome得到-1;
if(index!=-1&&newtable.rows.length>index)newtable.deleteRow(index);//firefox 能得到rowIndex;ca!

document.onclick=function(e)
//alert('ok');
var evt=e||window.event;
var target=evt.srcElement||evt.target;
//alert(target.tagName);
if(target.parentNode&&target.parentNode.parentNode&&target.parentNode.parentNode.id&&target.parentNode.parentNode.id.toLowerCase()=='newtable')
document.getElementById('newtable').removeChild(target.parentNode);
function merge()
var beginrow=3;
var endrow=5;
var begincell=5;
var endcell=10;
rowspan=endrow-beginrow+1;
cellspan=endcell-begincell+1;
for (var i=endrow;i>=beginrow;i--)
for (var j=endcell;j>=begincell;j--)

if (i==beginrow&&j==begincell)else//指定的起始单元格不能删除
//var row=i;
//var col=j;
//alert(i+':'+j);
if(document.getElementById(i+'/'+j)!=null)elem=document.getElementById(i+'/'+j);elem.parentNode.removeChild(elem);


var obj=document.getElementById(beginrow+'/'+begincell);
obj.setAttribute('rowspan',rowspan);
obj.setAttribute('colspan',cellspan);

</script>本回答被提问者和网友采纳

以上是关于js+html:table td合并单元格后,动态新增一行,能保持td合并的状态吗?js(jquery)代码该如何写?的主要内容,如果未能解决你的问题,请参考以下文章

js动态添加行怎么合并单元格

c# tableLayoutPanel 合并单元格后出来多余的线怎么处理

HTML5 table 表格如何做?

html table 如何设置 使每行各列的列宽不一样??

Markdown表格中换行、合并单元格

js 怎么样合并单元格