正如你所看到的,我仍然是javascript的新手 为什么只能附加一次Textnode?当你在其他地方再次添加它时,第一个消失
我不需要解决问题的方法我只是好奇是什么导致了这种行为。 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]);
}
}
答案 0 :(得分:2)
简短回答是DOM是树,而不是网络。每个节点只能有一个父节点。如果您可以在多个位置添加节点,则它将具有多个父节点。