oldNode.parentNode指代那个节点?b标签的父节点指的是DIV? 按照的我理解直接把b标签替换成i标签,不需要加parentNode,求大佬指点!

来源:9-15 替换元素节点replaceChild()

为了前端

2019-10-14 08:52

 <div><b id="oldnode">JavaScript</b>

  是一个很常用的技术,为网页添加动态效果。</div>

  <a href="javascript:replaceMessage()"> 将加粗改为斜体</a>

    <script type="text/javascript">

      function replaceMessage(){

          var oldNode=document.getElementById("oldnode");

          var newtext=document.createTextNode("JavaScript");

          var newnode=document.createElement("i");

          newnode.appendChild(newtext);

  oldNode.parentNode.replaceChild(newnode,oldNode);

  }    



写回答 关注

3回答

  • RazorE
    2019-11-06 15:47:14

    我盯着replaceChild这玩意看了老半天才反应过来这个是操作子节点的,要操作对应节点得先获取父节点?

  • 君临天下HJL
    2019-10-22 13:51:03

    替换节点的操作,是需要通过该被替换节点的父节点操作的。

  • 今朝似梦愿回昨
    2019-10-14 15:27:04

    首先,b标签的父节点指代div,然后,我个人理解是替换是删除掉原来的节点,然后新创建一个顶上去插入的意思,这里我尝试删除掉parentNode后报错

    Failed to execute 'replaceChild' on 'Node': The node to be replaced is not a child of this node.

        at replaceMessage (file:///F:/HTML+CSS+JAVAScript/HTML.html:23:18)

        at <anonymous>:1:1

    ,意思是,要替换的节点不是该b标签的子节点,

    所以其实是对父节点的操作吧。


JavaScript进阶篇

本课程从如何插入JS代码开始,带您进入网页动态交互世界

468194 学习 · 21891 问题

查看课程

相似问题