在书中使用JavaScript和CSS编写HTML5 '(用于Microsoft认证)是从文档中删除子项的示例(在onLoad函数中定义)。但它不起作用并抛出异常: 未捕获NotFoundError:无法在“节点”上执行“removeChild”:要删除的节点不是此节点的子节点。
我知道如果我尝试从“outerDiv”节点中删除子节点,它会起作用,但我不知道为什么它会在书中写出来。书中的错误或我做错了什么?
<!doctype html>
<html>
<head>
<script>
window.onload = function () {
var element = document.getElementById("innerDiv");
document.removeChild(element);
}
</script>
</head>
<body>
<div id="outerDiv">
<p class='mainPara'>Main Paragraph</p>
<ul>
<li>First List Item</li>
<li>Second List Item</li>
<li>Third List Item</li>
<li>Fourth List Item</li>
</ul>
<div id="innerDiv">
<p class='subPara' id='P1'>Paragraph 1</p>
<p class='subPara' id='P2'>Paragraph 2</p>
<p class='subPara' id='P3'>Paragraph 3</p>
<p class='subPara' id='P4'>Paragraph 4</p>
</div>
</div>
</body>
</html>
答案 0 :(得分:2)
尝试:
element.parentNode.removeChild(element);
而不是:
document.removeChild(element);
就像@ j08691所说,也许是一本书的错误:)。
答案 1 :(得分:1)
这对你有用,元素不是文档的直接子元素,所以这个(你的代码)不起作用。
element.parentNode.removeChild(element)