在原始克隆之后插入克隆
Inserting a clone after the original
我正在尝试在原始元素之后放置一个克隆元素。
我做了一些研究,发现了如何创建克隆以及如何将克隆放在原始克隆之后,但我似乎无法将它们放在一起。
这是我的代码:
<html>
<head>
<script type="text/javascript">
function onClickAdd() {
var tableRow = document.getElementById("tableRow");
var tableRowClone = tableRow.cloneNode(true);
document.getElementById("tableRow").insertBefore(tableRowClone, tableRow.nextSibling);
}
</script>
</head>
<body>
<table>
<tr id="tableRow">
<td>
<input type="text" name="textField">
</td>
</tr>
<tr>
<td>
<input type="button" name="addButton" value="Add" onClick="Javascript:onClickAdd()">
</td>
</tr>
</table>
</body>
</html>
我的预期输出是:每次单击addButton时,一个新的文本输入字段将放置在文本字段堆栈的底部。该按钮不是堆栈的一部分,应始终位于堆栈下方。
我是一个彻头彻尾的Javascript菜鸟。上面的代码可能不正确,也可能不正确。谢谢!
关闭。 :-)你在父节点上调用它(无需再次查找):
function onClickAdd() {
var tableRow = document.getElementById("tableRow");
var tableRowClone = tableRow.cloneNode(true);
tableRow.parentNode.insertBefore(tableRowClone, tableRow.nextSibling);
// ^^^^^^^^^^^^^^^^^^^--- changes here
}
当然,上面会创建一个无效的 DOM 结构,因为您最终会得到两行具有相同的id
值 ( "tableRow"
),并且id
值在文档中必须是唯一的。所以:
function onClickAdd() {
var tableRow = document.getElementById("tableRow");
var tableRowClone = tableRow.cloneNode(true);
// Clear the `id` from the clone
tableRowClone.id = ""; // To clear it, or include something to give it its own
tableRow.parentNode.insertBefore(tableRowClone, tableRow.nextSibling);
// ^^^^^^^^^^^^^^^^^^^--- changes here
}
您必须在父元素上使用insertBefore
:
tableRow.parentNode.insertBefore(tableRowClone, tableRow.nextSibling);
并且不要忘记更改id
.ID 必须是唯一的。
而且,在内联事件中,Javascript:
已过时。它不会导致任何错误,因为它被解释为标签。
function onClickAdd() {
var tableRow = document.getElementById("tableRow");
var tableRowClone = tableRow.cloneNode(true);
tableRow.parentNode.insertBefore(tableRowClone, tableRow.nextSibling);
}
还有演示。
相关文章:
- CKEditor - 插入文本在 setData 之后不起作用
- 如何在 d3.js 中的同级元素之后插入
- 煎茶触摸 - 在组件之后添加/插入
- 动态嵌套列表:单击时插入行,在当前元素之后
- 在原始克隆之后插入克隆
- jQuery - contenteditable - 确定图像之前还是之后的插入符号
- 如何在字符串中的第二个字符之后插入字符
- 我可以在 Javascript 中的 onclick 中的“this”之后插入字符串吗?
- 如何使用原型.js在文本块之后插入内容
- 通过jQuery在最后一项之后插入
- 如何使用jQuery在具有类的特定元素之后插入HTML
- 如何在第二个元素之后插入
- 如何在文本的每 5,000 个字符之后的第一个
或
之后插入一个 - jQuery 在最后一个元素之后插入
- 你如何切换插入之前或插入之后
- Node.js:在文本文件中的特定行之后插入一行
- 复制<李>并将它们插入它们自己之后
- 可以't在使用node js将动态字段值插入mysql DB时,在发送头之后设置头
- 在Meteor方法中承诺之后插入集合
- 在“”之后插入文本;这个“;使用javascript输入元素