2
正如你所看到的,我仍然是一个JavaScript的新手 为什么它只能追加一次Textnode?当你再次将其添加到其他地方时,第一个消失appendChild数组只附加到最后一个元素
我不需要问题的解决方案我只是好奇是什么导致了这种行为。 例子,其中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]);
}
}
好吧,我现在看到。如果我没有将createTextNode放入一个变量中(甚至不确定是否可以在没有var的情况下执行它),它会起作用。但是因为我一直使用相同的变量,所以它总是改变父节点。 谢谢你的教育回应。 – Jarco 2011-04-14 14:00:32
是的,没有理由不能继续创建新节点并添加它们。 – 2011-04-14 14:03:01