用javascript克隆整个html表(带有uniq ID)元素
Cloning whole html table (with uniq IDs) element with javascript
我以某种方式使newRow()函数工作。您可以在下面看到代码。现在我需要克隆整个表。我试图调整newRow()函数来完成这项任务,显然我的尝试没有成功。
我的js代码:
function newRow( valoda, dataTable){
var row, table, len, tags, newRow;
row = document.getElementById('valoda');
table = document.getElementById('dataTable');
tags = table.getElementsByTagName('tr');
len = tags.length;
newRow = row.cloneNode(true);
newRow.id = "valoda_0" + len;
table.appendChild(newRow);
}
function newTable(dataTable3){
var table, len, tags, newTable;
table = document.getElementById('dataTable3');
tags = table.getElementsByTagName('table');
len = tags.length;
newTable = row.cloneNode(true);
newTable.id = "darbs_0" + len;
table.appendChild(newRow);
}
和HTML:
<fieldset class="row2">
<legend>Iemaņas un zināšanas</legend>
<p>
<input type="button" value="Pievienot" onClick="newRow( 'valoda', 'dataTable')" />
<p>
</p>
</p>
<table class="virsraksti" border="1">
<tr>
<th style="width:25%"> Valoda</th>
<th style="width:25%"> Runātprasme </th>
<th style="width:25%"> Lasītprasme </th>
<th style="width:25%"> Rakstītprasme </th>
</tr>
</table>
<table id="dataTable" class="cv" border="1">
<tbody>
<tr id="valoda">
<td>
<input type="text" style="width:100%;" placeholder="ievadiet valodu">
</td>
<td>
<select id="Runatprasme_izv" name="Runatprasme_izv" required="required">
<option>dzimtā valoda</option>
<option>teicami</option>
<option>labi</option>
<option>viduvēji</option>
<option>pamatzināšanas</option>
</select>
</td>
<td>
<select id="Lasitprasme_izv" name="Lasitprasme_izv" required="required">
<option>teicami</option>
<option>labi</option>
<option>viduvēji</option>
<option>pamatzināšanas</option>
</select>
</td>
<td>
<select id="Rakstitprasme_izv" name="Rakstitprasme_izv" required="required">
<option>teicami</option>
<option>labi</option>
<option>viduvēji</option>
<option>pamatzināšanas</option>
</select>
</td>
</tr>
</tbody>
</table>
<div class="clear"></div>
</fieldset>
<fieldset class="row3">
<legend>Datorzināšanas</legend>
<p>
<input type="button" value="Pievienot" onClick="newRow2( 'datori', 'dataTable2')"/>
</p>
<p>
<table>
<th>
<th style="width:75%"> Nosaukums </th>
<th>
<th style="width:25%"> Zināšanu līmenis </th>
</tr>
</table>
<table id="dataTable2" class="cv" border="1">
<tr id="datori">
<td style="width:75%"><input type="text" style="width:100%;" name="Dator_nos"placeholder="Ievadiet programmatūras nosaukumu"></td>
<td>
<select id="BX_gender" name="BX_gender" style="width:100%">
<option>teicami</option>
<option>labi</option>
<option>pamatzināšanas</option>
</select>
</td>
</tr>
</table>
</p>
</fieldset>
<fieldset class="row4">
<legend>Darba pieredze</legend>
<p>
<input type="button" value="Pievienot" onClick="newTable('dataTable3')" />
<p></p>
</p>
<table id="dataTable3" class="cv" border="1">
<tr>
<td style="width:5%; text-align:left"> Darba vieta/Uzņēmums: </td>
<td style="padding:0"> <input type="text" class="darbs"></td>
</tr>
<tr>
<td style="width:5%; text-align:left"> Datums no: </td>
<td style="padding:0"> <input type="text" class="darbs"></td>
</tr>
<tr>
<td style="width:5%; text-align:left"> Datums līdz:</td>
<td style="padding:0"> <input type="text" class="darbs"></td>
</tr>
<tr>
<td style="width:5%; text-align:left"> Ieņemamais amats:</td>
<td style="padding:0"> <input type="text" class="darbs"></td>
</tr>
<tr>
<td style="width:5%; text-align:left"> Amata kategorija:</td>
<td style="padding:0"> <input type="text" class="darbs"></td>
</tr>
</table>
</fieldset>
我知道有很多方法可以克隆表行,但由于我即将把所有输入数据放在DB中,我需要一个为每个创建的元素创建uniq ID的函数,我知道newRow()函数可以做到这一点,但addTable()呢?它将只创建唯一的表ID,还是可以为表中的所有输入字段获取新的unique?
我希望你能理解我这个扭曲的问题。根据要求,如果需要,我会加一把小提琴。
你能在这里给我看正确的解决方案吗?
非常感谢。
https://developer.mozilla.org/en-US/docs/Web/API/Node.cloneNode
HTML代码-
<table id="mytable">
<thead>
<tr>
<th colspan=3>Values (Type A)</th>
</tr>
<tr>
<th colspan=3>Values (Type B)</th>
</tr>
</thead>
<tbody>
<tr>
<td>1</td><td>2</td><td>3</td>
</tr>
<tr>
<td>4</td><td>5</td><td>6</td>
</tr>
</tbody>
</table>
JavaScript代码-
var mytable = document.querySelector('#mytable');
var clonedMyTable = mytable.cloneNode();
console.log(clonedMyTable);
http://jsfiddle.net/CLvD2/2/
javascript:
$("#mytable").clone().appendTo(".mytarget");
html:
<table id="mytable">
<tr>
<td>cell1</td>
<td>cell2</td>
</tr>
</table>
<div class="mytarget"></div>
相关文章:
- 不显示带有本地json文件数据的谷歌地图脚本
- 如何创建带有插槽的vue js组件预加载程序
- 节点是否需要模块传递带有方括号的arg?这是个错误吗
- MeteorJS:在带有回调的vzaar api上正确使用wrapAsync
- Javascript”;类“;带有参数的扩展
- 带有加号的电话号码验证(可选)
- 创建带有和不带有JavaScript的Bootstrap下拉菜单
- 使用D3.js计算带有字母间距的文本长度
- 使用带有JavaScript的SOAP WebService
- 下拉框,带有展开的optgroup
- 带有填充属性的SVG矩形显示在包含元素的上方插入框阴影
- 带有验证和隐藏字段值的提交按钮
- 如何使用带有Preact的React路由器
- 带有let的JS/EECMAScript6私有字段的模式
- 带有多个elseif的Javascript if语句
- Wordpress中带有JQuery Accordion的未定义匿名函数
- 当带有渲染器的DOM元素不在屏幕顶部时,移动了场景的坐标
- 带有url的单页网站导航
- 带有凭据的角度文件上载(CORS)不起作用
- 用javascript克隆整个html表(带有uniq ID)元素