为什么将元素从DOM中删除?

时间:2019-02-27 10:53:09

标签: javascript

使用.appendNode()时,似乎从页面上删除了原始文件-例如clickedEl下一个同级内部节点。

这是为什么?这是预期的行为吗?

var textNode = clickedEl.nextElementSibling.childNodes[0];
var htmlObject = document.createElement('div');
if(video_text) htmlObject.appendChild(textNode);

在FF 65.0.1中进行了测试

1 个答案:

答案 0 :(得分:1)

您正在使用textNode并将其附加到htmlObject。这会将节点从其原始位置移动到新位置。

如果要附加原始节点的副本,可以先clone对其进行复制:

var textNode = clickedEl.nextElementSibling.childNodes[0].cloneNode();
var htmlObject = document.createElement('div');
if(video_text) htmlObject.appendChild(textNode);

请注意,这不会将事件侦听器复制到克隆的节点。