ARUKANA
2020-03-31 11:32
<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>无标题文档</title>
</head>
<body>
<div><b id="oldnode">JavaScript</b>是一个很常用的技术,为网页添加动态效果。</div>
<a href="javascript:replaceMessage()"> 将加粗改为斜体</a>
<script type="text/javascript">
function replaceMessage(){
var otest=document.getElementById("div");
var old=document.getElementById("oldnode");
var newnode=document.createElement("i");
newnode.innerHTML="Javascript";
otest.replaceChild(newnode,old);
}
</script>
</body>
</html>
otest.replaceChild(newnode,old);换成:
old.parentNode.replaceChild(newnode,old)就能有加粗换斜体的效果
为什么呢,实在不解
old的父节点不就是div吗?
应该是var otest =document.getElementsByTagName("div")[0]才对啊,div是一个元素名,不是一个id,通过元素名来获取元素,应该是用document.getElementByTagName(TagName);才对,你这里写的是通过id获取元素的方法,所以是错误的,但是你的思路是对的。
子节点的控制必须通过父节点
JavaScript进阶篇
468195 学习 · 21891 问题
相似问题