li_13579_li
2018-12-30 11:23
采纳率: 95.1%
浏览 1.2k

为什么使用Node.replaceChild报Uncaught TypeError: Cannot read property 'replaceChild' of null

图片说明

代码在下面:


<div class="parent">
    <div class="child">
        <p>学习Java</p>
    </div>
</div>


<script type="text/javascript">
    var newElement = document.createElement("h1");
    newElement.textContent = "学习JavaScript";

    var oldElement = document.querySelector("p");
    oldElement.parentNode.replaceChild(newElement,oldElement);

    console.log(newElement); //Chrome输出: <h1>学习JavaScript</h1>
    console.log(oldElement); //Chrome输出: <p>学习Java</p>
    console.log(oldElement.parentNode.replaceChild(newElement,oldElement)); //Uncaught TypeError: Cannot read property 'replaceChild' of null

</script>
  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

2条回答 默认 最新

  • 天际的海浪 2018-12-30 08:41
    已采纳

    Uncaught TypeError: Cannot read property 'replaceChild' of null 这个错误是说:无法对 null 调用replaceChild方法
    说明 oldElement.parentNode 的值是 null

    你之前已经用新创建的newElement 替换了页面中oldElement
    这样oldElement就脱离了页面,oldElement也就没有父节点parentNode了。
    再次访问oldElement.parentNode 就是 null 了。
    这时要访问父节点也应该是newElement的父节点: newElement.parentNode

    点赞 评论
  • weixin_43748013 2018-12-30 07:52

    可能没在一个文档或目录!试一下绝对路径

    点赞 评论

相关推荐 更多相似问题