显然,我在这里做错了什么,但不是一个原生的javascript人,我很难发现它。
我不小心将一大堆子节点添加到我用来在我的iOS应用程序中填充webViews的一些html的头部(我通常用objc编程)。这是因为我每次加载页面时都使用document.head.appendChild,而不检查节点是否已经存在,就像我想要的那样。所以现在我有多个所需的节点。卫生署!
所以现在我正在尝试编写一个函数来再次删除它们。
这就是我所拥有的:
function removeThemAgain() {
if (document.head.hasChildNodes()) {
console.log('has child nodes');
for (var i = document.head.childNodes.length - 1; i >= 0; i--) {
if (document.head.childNodes[i].innerHTML == 'body * {-webkit-text-size-adjust:none !important;}'){
console.log('removing i == ' + i + ' ' + document.head.childNodes[i].innerHTML);
document.head.removeChild(document.head.childNodes[i]);
}
}
}
}
现在,它正在寻找节点,因为console.log报告它正在删除节点(正如我期望的那样,我的代码),但是当我检查它们是否仍在那里时,它们还没有#39真的走了!
例如:
[Log]删除i == 7 body * {-webkit-text-size-adjust:none !important;}
[Log]删除i == 6 body * {-webkit-text-size-adjust:none !重要;}
他们是用
创建的var myStyle = document.createElement('style');
myStyle.innerHTML = 'body * {-webkit-text-size-adjust:none !important;}';
document.head.appendChild(myStyle);
我确定这是显而易见的事情,但现在原因是我不知道。
关于为什么这些实际上没有被删除的任何想法?
答案 0 :(得分:0)
您的代码是正确的,并完成它应该的工作。我想你的意思是将运行时html的快照保存回文件中,但你没有正确地那个。