为了前端
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);
}
我盯着replaceChild这玩意看了老半天才反应过来这个是操作子节点的,要操作对应节点得先获取父节点?
替换节点的操作,是需要通过该被替换节点的父节点操作的。
首先,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进阶篇
468194 学习 · 21891 问题
相似问题