Javascript 我需要将节点列表从一个父节点移动到另一个父节点
当我到达一个特定的断点时,我试图将一个节点列表(在我的例子中是类名为“.images”的img HTML标记)移动到另一个父节点,作为该新父节点的第一个子节点Javascript 我需要将节点列表从一个父节点移动到另一个父节点,javascript,html,javascript-objects,Javascript,Html,Javascript Objects,当我到达一个特定的断点时,我试图将一个节点列表(在我的例子中是类名为“.images”的img HTML标记)移动到另一个父节点,作为该新父节点的第一个子节点 /* BEFORE BREAKPOINT */ <div class="old-parent"> <img class="images"> <div class="new-parent"> </div> </
/* BEFORE BREAKPOINT */
<div class="old-parent">
<img class="images">
<div class="new-parent">
</div>
</div>
<div class="old-parent">
<img class="images">
<div class="new-parent">
</div>
</div>
<div class="old-parent">
<img class="images">
<div class="new-parent">
</div>
</div>
然后在控制台中返回一个错误:
未捕获的TypeError:未能在“节点”上执行“insertBefore”:参数1不是“节点”类型
您需要索引
图像
以一次移动一个图像
const changeImg=(e,i)=>{
如果(如匹配){
newParent.forEach(元素=>{
elem.insertBefore(images[i],elem.childNodes[0]);
})
}
};
您需要索引图像
以一次移动一个图像
const changeImg=(e,i)=>{
如果(如匹配){
newParent.forEach(元素=>{
elem.insertBefore(images[i],elem.childNodes[0]);
})
}
};代码>
/*AFTER REACHING THE BREAKPOINT*/
<div class="old-parent">
<div class="new-parent">
<img class="images">
</div>
</div>
<div class="old-parent">
<div class="new-parent">
<img class="images">
</div>
</div>
<div class="old-parent">
<div class="new-parent">
<img class="images">
</div>
</div>
const newParent = document.querySelectorAll('.new-parent');
const images = document.querySelectorAll('.images');
const mediaQ = window.matchMedia('(max-width: 494px)');
const changeImg = (e) => {
if (e.matches) {
newParent.forEach(elem => {
elem.insertBefore(images, elem.childNodes[0]);
})
}
};
mediaQ.addEventListener('change', changeImg);