gpt4 book ai didi

javascript - appendChild to array 仅追加到最后一个元素

转载 作者:行者123 更新时间:2023-11-29 22:34:42 25 4
gpt4 key购买 nike

如您所见,我仍然是 javascript 的新手为什么只能附加一次 Textnode?当您在其他地方再次添加它时,第一个消失

我不需要问题的解决方案我只是好奇是什么导致了这种行为。仅将文本节点添加到数组的最后一个元素的示例:

function hideAdd(){
var hide = document.createTextNode('Afbeelding verbergen');
var afb = collectionToArray(document.getElementsByTagName('img'));
afb.pop();
var divs = [];
for (i=0; i < afb.length; i++){
divs.push(afb[i].parentNode);

}
console.log(divs);
for ( i = 0; i < divs.length;i++){
divs[i].appendChild(hide);
}
}

这是您使用唯一文本节点的地方,因此它可以工作:

function hideAdd(){
var hide = []
var afb = collectionToArray(document.getElementsByTagName('img'));
afb.pop();
var divs = [];
for (i=0; i < afb.length; i++){
divs.push(afb[i].parentNode);
hide[i] = document.createTextNode('Afbeelding verbergen');

}
console.log(divs);
for ( i = 0; i < divs.length;i++){
divs[i].appendChild(hide[i]);
}
}

最佳答案

简短的回答是 DOM 是一棵树,而不是一个网络。每个节点只能有一个父节点。如果您可以在多个位置添加一个节点,它就会有多个父节点。

关于javascript - appendChild to array 仅追加到最后一个元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5664290/

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