table表任意复制一行的关键是复制哪行,插入到什么位置,如何插入。
第 一个问题复制哪行,通常是点击某一行以确定复制的当前行,核心代码如下:
var e = window.event
if (e.target) targ = e.target
else if (e.srcElement) targ = e.srcElement
if (targ.nodeType == 3)
targ = targ.parentNode
if(targ.tagName=="TD")
第 二个问题插入位置,通常是点击行的下面
pos = targ.parentNode.rowIndex+1
也有可能在表头首行pos =0
再就是表尾"beforeEnd"
第三个问题如何插入,先复制当前行:
var con = targ.parentNode.cloneNode(true);
再进行插入,可以是insertRow,也可以是insertAdjacentElement:
var x=document.getElementById('myTable').insertRow(pos);
document.getElementById('myTable').insertAdjacentElement("beforeEnd",con);
复制之后可对复制行里的内容进行修改调整:
var y=x.insertCell(0).innerHTML=document.getElementById("cell1").value
也可进行删除指定行:
document.getElementById('myTable').removeChild(Obj.parentNode.rows[i]);
在js中用克隆(clone)的方法动态添加表格(table)行(tr):
用javascript的克隆方法添加表格的行要比用innerHTML方法代码简洁的多,主要使用Obj.cloneNode(true);方法进行克隆.
看下面的代码:
11111 | 22222 | 33333 | 44444 |
你这个任意复制一行,是点击某一行中的一个按钮,然后复制当前行?
复制的当前行,是插入到行集合的末尾,还是当前行的下面?