为了账号安全,请及时绑定邮箱和手机立即绑定

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

 <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 回答

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

0 回复 有任何疑惑可以回复我~

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

0 回复 有任何疑惑可以回复我~

首先,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标签的子节点,

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


0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

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

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信