慕的地0485877
2020-05-13 10:12
<!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 newNode=document.creatElement("i");
var newNodetext=document.creatElementTextNode("JavaScript");
newNode.appendChild(newNodetext);
var oldNode=document.creatElement("oldnode");
oldNode.parentNode.replaceChild(newNode,oldNode);
}
</script>
</body>
</html>
var oldNode=document.creatElement("oldnode");
这是创建新节点,应该是获取旧节点
var oldNode=document.getElementById("oldnode");
var oldNode=document.creatElement("oldnode");
这里你是向获取到旧的结点吧?写错了哦。
其次,当你换完之后你发现i和p比较是不是还少了一个id的属性
所以需要通过
newNode.setAttribute('id',oldNode.getAttribute('id'));
还有var newNodetext=document.creatElementTextNode("JavaScript");
"javaScript"试着换成oldNode.innerHTML;这样不管p的innerHTML是什么你都可以替换到i中
你可以试着通过这种思想,将replaceMessage函数变成一个可以随意替换元素的一个方法,
function replaceMessage( newNode, oldNode){
函数体
};
不要过分深究适度哦
JavaScript进阶篇
468194 学习 · 21891 问题
相似问题