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

9-15替换元素节点replaceChild():示例中用到了父节点parentNode,父节点在这里的作用?

<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>replaceChild 实现子节点(对象)的替换</title>
</head>

<body>
<script type="text/javascript">
   function replaceMessage(){
	   var newnode=document.createElement("p");
	   var newnodeText=document.createTextNode("JavaScript");
	   newnode.appendChild(newnodeText);
	   var oldnode=document.getElementById("oldnode")
	   oldnode.parentNode.replaceChild(newnode,oldnode);  //这里用到了parentNode
	   }
</script>
<h1 id="oldnode">Java</h1>
<a href="javascript:replaceMessage()">"Java"替换"JavaScript"</a>
</body>
</html>


正在回答

4 回答

同学,看本章的知识:

替换元素节点replaceChild()

replaceChild 实现 子节点(对象) 的替换。返回被替换对象的引用。 

子节点是相对父节点来用的。没有父节点就得不到子节点集合。子节点集合==父节点.childNodes

因此,想要替换某个节点,必须找到它的父节点,从父节点调用replaceChild()方法


1 回复 有任何疑惑可以回复我~
#1

MMJiao 提问者

不能直接找到被替换的子节点吗
2016-12-09 回复 有任何疑惑可以回复我~
#2

进击君 回复 MMJiao 提问者

子节点集合,或者叫做子节点数组。必须在被替换的节点所在的数组里才能进行操作,也就是该节点以及所有它的兄弟节点的集合,我们通过该节点的父节点找到这个子节点集合。
2016-12-09 回复 有任何疑惑可以回复我~
#3

MMJiao 提问者

非常感谢!这一节感觉好难,很多都不太理解
2016-12-09 回复 有任何疑惑可以回复我~
查看1条回复

是不是前面部分学到的insertBefoe         appendChild等都需要相对父节点才可以找到本身的子节点呢 大神赐教

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

有个概念在之前的课上也出现过,叫子节点集合,或者子节点数组,想要对节点进行增加,删除,必须通过该节点所在的子节点数组,也就是该节点以及它的所有兄弟节点的集合里操作才行。而我们通过父节点来找到这个集合(子节点集合)

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

这里替换的是父节点中的一个子节点,所以oldnode获取取了父节点body然后把body中的oldnode 也就是自己替换为newnode

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

举报

0/150
提交
取消
JavaScript进阶篇
  • 参与学习       468189    人
  • 解答问题       21891    个

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

进入课程

9-15替换元素节点replaceChild():示例中用到了父节点parentNode,父节点在这里的作用?

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