Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/457.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript .append不能替换类似的元素_Javascript_Html - Fatal编程技术网

Javascript .append不能替换类似的元素

Javascript .append不能替换类似的元素,javascript,html,Javascript,Html,我在div.slider中有一个div.slider列表。使用js,我得到了中所有幻灯片的节点列表。滑块:let slides=document.querySelectorAll('.slider.slide')非常好(滑块本身也是const slider=document.querySelector('.slider');) 但每当我尝试将.slides中的最后一个元素添加到.slider的前面时,它就会删除最后一个.slider 因此,例如,从abc列表中,它应该是cabc,但它变成了cab

我在
div.slider
中有一个
div.slider
列表。使用js,我得到了
中所有
幻灯片的
节点列表
滑块
let slides=document.querySelectorAll('.slider.slide')非常好(滑块本身也是
const slider=document.querySelector('.slider');

但每当我尝试将
.slides
中的最后一个元素添加到
.slider
的前面时,它就会删除最后一个
.slider

因此,例如,从
abc
列表中,它应该是
cabc
,但它变成了
cab

我尝试了
slider.insertBefore(slides[slides.length-1,slides[0]);
slider.appendChild(slides[slides.length-1]);
和其他一些方法

如何将节点列表元素的副本添加到开始/结束,而不删除类似的/duplicant?

无jquery使用:

insertBefore()
appendChild()
都将节点移动到新位置,而不复制它

从文件中:

如果文档中已存在给定节点,
insertBefore()
moves 它将从当前位置移动到新位置。(即,它将 在追加之前自动从其现有父级中删除 添加到指定的新父级。)

这意味着节点不能位于文档的两个位置 同时

注意:可以使用
节点。cloneNode()
创建节点的副本 在将其附加到新父项下之前。请注意 与cloneNode()将不会自动保持同步


因为同一元素不能同时位于两个位置。您需要克隆它
slider.insertBefore(slides[slides.lenght -1].cloneNode(), slides[0]);