t41*_*ate 2 html javascript dom
我想复制一个容器中的所有子节点,并将它们插入同一个容器中。
例如,我有:
<div id="container">
<div class="square red"></div>
<div class="square green"></div>
</div>
Run Code Online (Sandbox Code Playgroud)
在运行这个 JS 之后:
function duplicateChildNodes (parentId){
var parent = document.getElementById(parentId);
NodeList.prototype.forEach = Array.prototype.forEach;
var children = parent.childNodes;
children.forEach(function(item){
parent.appendChild(item);
});
};
duplicateChildNodes("container");
Run Code Online (Sandbox Code Playgroud)
我应该:
<div id="container">
<div class="square red"></div>
<div class="square green"></div>
<div class="square red"></div>
<div class="square green"></div>
</div>
Run Code Online (Sandbox Code Playgroud)
出于某种原因,它不起作用。我该如何解决?
一支笔:https : //codepen.io/t411tocreate/pen/gXqYWj
该 dom 元素仅存在于一个地方,因此在 append 后将其移动到新位置(在您的情况下,它被删除并附加到同一位置)
您首先需要克隆节点。前任:var cln = itm.cloneNode(true);
检查下面的更新示例:
function duplicateChildNodes (parentId){
var parent = document.getElementById(parentId);
NodeList.prototype.forEach = Array.prototype.forEach;
var children = parent.childNodes;
children.forEach(function(item){
var cln = item.cloneNode(true);
parent.appendChild(cln);
});
};
duplicateChildNodes("container");Run Code Online (Sandbox Code Playgroud)
#container{
border: 1px solid #ccc;
padding: 2px;
}
.square{
width: 100px;
height: 100px;
display: block;
margin: 2px;
}
.red{
background: red;
}
.green{
background: green;
}Run Code Online (Sandbox Code Playgroud)
<div id="container">
<div class="square red"></div>
<div class="square green"></div>
</div>Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6446 次 |
| 最近记录: |