gpt4 book ai didi

javascript - 在元素数组上使用 insertBefore

转载 作者:行者123 更新时间:2023-11-30 08:08:01 25 4
gpt4 key购买 nike

我有一个元素数组,我想在遍历数组时对每个元素使用 inserBefore。它应该在数组中的每个元素之后添加要插入的元素,但它只将它添加到数组中的最后一个元素。我认为这是一个闭包问题,但即使在使用闭包之后我仍然遇到问题。在没有闭包的情况下,我通过将类名更改为数组所在的键值来测试它,并且没有问题。

for(var i in elems){
var refElem = elems[i];

refElem.parentNode.insertBefore(elementToInsert, refElem.nextSibling);
}

这是去掉闭包的代码。如何将 elementToInsert 添加到数组中的每个元素?

最佳答案

It's supposed to add the element-to-be-inserted after each of the elements

这就是问题所在,您不能将一个元素多次插入到 DOM 中。如果您尝试这样做,它只会在将元素插入某处(再次)之前从 DOM 中删除该元素。因此,您需要为循环的每一轮创建不同的元素,例如 cloning你的 elementToInsert

顺便说一句,永远不要使用 for…in-loops with arrays !

关于javascript - 在元素数组上使用 insertBefore,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14740071/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com