document.RemoveChild在JavaScript中不起作用

时间:2016-01-12 16:53:28

标签: javascript html

在书中使用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>

2 个答案:

答案 0 :(得分:2)

尝试:

element.parentNode.removeChild(element);

而不是:

document.removeChild(element);

就像@ j08691所说,也许是一本书的错误:)。

答案 1 :(得分:1)

这对你有用,元素不是文档的直接子元素,所以这个(你的代码)不起作用。

element.parentNode.removeChild(element)