如何复制表的行
How to copy a row of a table
我正在尝试复制元素树。在这个过程中,我必须更改一些参数,如名称,参数被传递给分配给原始元素的某个函数。如何设置元素的点击和其他方法。
例如:
<table>
<tr>
<td>
<select name="abc(0)" onclick="func(0)">
<option> 1</option>
</select>
</td>
<td>
<input type="text" onkeypress="keyp(0)" name="text(0)">
</td>
</tr>
</table>
我尝试了各种方法,例如克隆节点(true),并尝试重命名节点名称并尝试更改分配的方法参数。我也尝试通过 document.createElement 创建元素,但在 IE 中,它不会更改名称。在第二个选项中,它甚至没有设置名称。方法也没有改变,在第二种方法中,它甚至没有被分配。
有人可以让我知道我在哪里做错了。
谢谢和问候阿米特
我认为最好的选择是摆脱on_event_属性并重构您的 javascript,以便它改用事件侦听器。这样,处理事件的代码将与标记完全分开,克隆应该不会引起任何问题。
请注意,您必须使用委托事件,因为必须为最初在页面上不存在的克隆元素调用事件处理程序。
在 IE 中唯一不能更改的属性是已添加到窗体中的控件的类型,您可以更改其他所有内容。请注意,在所有浏览器中,克隆的元素都会保留内联侦听器,使用 attachEvent 添加侦听器的元素也是如此(所有库都用于支持 attachEvent 而不是 addEventListener 的浏览器)。
以下代码片段显示可以更改表单元素的 name 属性(在 IE 8 标准模式下测试),并为克隆的节点保留内联侦听器。
<form id="f0">
<input type="text" name="inp0" onclick="alert(this.name);">
<input type="button" value="Do clone" onclick="
var el = this.form.inp0.cloneNode(true);
this.form.appendChild(el);
el.name = 'inp1';
">
</form>
相关文章:
- 使用Clipboard.js复制span文本
- ZeroClipboard-在复制之前添加到值
- 如何在android中使用phonegap将文件从一个文件夹移动/复制到另一个文件夹
- 复制图像路径以单击它
- 复制当前url按钮-Javascript
- 具有所有样式的文本正在复制到可编辑文本区域
- JavaScript”;复制“;HTML表单
- jsPlumb-拖动克隆而不进行复制
- 如何将给定的curl命令复制为jquery ajax请求
- 如何对映射插件创建的敲除对象进行深度复制
- 使用append时复制内容的DOM
- 如何将键入的文本从一个输入类型的文本复制到另一个
- 需要将单元格值复制到html表中的其他单元格中
- jQuery表单克隆,如何阻止值被复制
- 在Javascript中复制C#服务器端验证
- 将文件从应用程序文件夹复制到JQM/Phonegap应用程序中的根文件夹
- 使用Emscripten Worker API传输数据而不进行复制
- 如何复制或复制数组数组
- 结构化克隆算法与深度复制算法有何不同?
- grunt contrib将复制目录复制到另一个没有根目录的目录中