书“使用 JavaScript 和 CSS 在 HTML5 中编程”(用于 Microsoft 认证)中是从文档中删除子项的示例(在 onLoad 函数中定义)。但它不起作用并抛出以下异常: 未捕获NotFoundError:无法在“Node”上执行“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>
最佳答案
尝试:
element.parentNode.removeChild(element);
而不是:
document.removeChild(element);
就像@j08691所说,也许是书上的错误:)。
关于javascript - document.RemoveChild 在 JavaScript 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34749416/