appendChild to array只追加最后一个元素



正如你所看到的,我仍然是一个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);      
    }
}

这是你使用唯一的textnode的地方:

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是树,而不是网络。每个节点只能有一个父节点。如果您可以在多个位置添加一个节点,那么它将有多个父节点。

最新更新