javaScript中table表任意复制一行怎么实现JS

如题所述

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]);
温馨提示:内容为网友见解,仅供参考
第1个回答  2013-07-23

在js中用克隆(clone)的方法动态添加表格(table)行(tr):
用javascript的克隆方法添加表格的行要比用innerHTML方法代码简洁的多,主要使用Obj.cloneNode(true);方法进行克隆.
看下面的代码:

 <select onchange="add_row(parseInt(this.options[this.selectedIndex].text,10),document.getElementById(’cloneTR’))">
<option selected>0000</option>
<option>1111</option>
<option>2222</option>
<option>3333</option>
<option>4444</option>
<option>5555</option>
</select>
<table id="hiddentbl">
<tr id="cloneTR" style="display:none">
<td>11111</td>
<td>22222</td>
<td>33333</td>
<td>44444</td>
</tr>
</table>
<script type="text/javascript">
function add_row(rowNum,Obj){ 
for(var i=1;i<Obj.parentNode.rows.length;i++){
Obj.parentNode.removeChild(Obj.parentNode.rows[i]);
i--;
}
for(var i=0;i<rowNum;i++){
var con = Obj.cloneNode(true); 
con.removeAttribute("style")
Obj.parentNode.insertAdjacentElement("beforeEnd",con); 
}

</script>

本回答被提问者和网友采纳
第2个回答  2013-07-20

    你这个任意复制一行,是点击某一行中的一个按钮,然后复制当前行?

    复制的当前行,是插入到行集合的末尾,还是当前行的下面?

javascript 复制 table
js做clone对象..只能做到浅复制...所以很难实现任意dom对象的复制 如果你可以在复制table后再对table进行修改...直接innerHTML就可以了,简单的思路是 <div id="org"> <table><tr><td><\/td><\/tr><\/table> <\/div> <div id="tag"><\/div> <!-- js 部分 --> document.getElementById("...

用JavaScript怎样选中表格一行,将信息存到一个js方法中
你给每行一个按钮,在按钮的onclick方法里通过document.getElementById获得选中的行,通过获得页面元素的value获得选中的值,再调用你的delete方法。delete方法接受传入的数据,再生成url,通过post或者get方法将数据提交给action,action里通过request.getParameter获得传入的参数。以上说的很笼统,你什么不清楚再...

如何利用JS实现复制\/粘贴功能
<input name="txt" value="测试"> <input type="button" value="复制" onclick="setTxt()"> <input type="button" value="读取" onclick="readTxt()"> 2、扩展复制:复制表格 Java代码 <INPUT TYPE="button" value="选中测试表格" onclick="CopyTable()"> 测试 <TABLE border="1" id...

javascript怎么实现两个表格整行数据的移动
很简单的,给你个思路:例如A、B表格一行只有一个单元格,那么给A表格要移动内容的行TD,定义一个ID1;给B表格要存放内容的那行TD,定义一个ID2。然后JS中通过ID1获取A表格那行TD内容,再在JS中通过ID2赋值内容。涉及语法:\/\/获取A表格那单元格内容 var tableATdValue = document.getElementById(...

javascript怎么实现通过上下移动按钮来移动表格被选中的整行数据_百...
首先 每行的tr要有一个class 而且设定这个class正常的背景颜色 被选中的背景颜色 然后 默认选中第一个 checkBOx的话 设置name都一样的 可以用行数作为ID区分 你点全选就全部选中并且所有tr都变为选中的class 然后设置获取键盘的输入码 判断当前哪行被选中 如果有上(下)一行就上(下)一行被...

...用js或者jquery实现将其中一个表格的某一行复制到另一个表格的一行...
<script type="text\/javascript"> (function(){ ("table:eq(0) tr:eq(1)")\/\/获取第一个表格的第二行N .clone()\/\/复制 .insertAfter("table:eq(1) tr:eq(0)");\/\/插入到第二个表格的第一行后面 })<\/script> <\/head> <body> <table> <tr> <td>表格1第一行<\/td><td>表格1第...

js代码能不能点击表格任意一单元格得到那个单元格的行数?求解_百度知 ...
当然可以,而且很简单,方法很多,你搜下rowIndex属性就出来了。你在单元格td上写个onclick =showRowIndex(this);然后点击的时候 触发方法 比如,function showRowIndex(ObjTd){ var objTr = ObjTd.parentElement;var rowNum = objTr.rowIndex;\/\/如果要得到单元格 就用cellIndex } ...

js中table里的每一行怎么去获得它的行号?
直接代码复制出去运行,我已经尽量写简单了,如果你还是不明白,那么...我...<html> <head> <title>1<\/title> <script> \/\/得到行对象 function getRowObj(obj){ var i = 0;while(obj.tagName.toLowerCase() != "tr"){ obj = obj.parentNode;if(obj.tagName.toLowerCase() == "table"...

页面上有个<table>表格,如何用JS中的循环分别取得各个td中的数据
<tr><td>测试数据6<\/td><\/tr> <\/table> <script type="text\/javascript"> var table = document.getElementById("tbitem");var td = table.getElementsByTagName("td");var len = td.length;for(i=0;i<len;i++){ alert(td[i].innerHTML);} <\/script> ...

JavaScript 复制粘贴技巧!
Document.execCommand()方法用于操纵可编辑区域的内容,实现复制和粘贴功能。例如,使用document.execCommand('copy')实现复制操作,document.execCommand('paste')实现粘贴操作。然而,此方法已被弃用,不推荐使用。此外,可以使用第三方库clipboard.js简化复制文本到剪贴板的操作。通过npm安装或script标签引入,...

相似回答