慕UI2261137
2016-07-09 11:07
为什么不能直接获取父节点,通过父节点直接调用replaceChild方法,下面加粗的代码
<!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 p=document.getElementsByTagName("div");
var newn=document.createElement("i");
var t=document.createTextNode("JavaScript");
newn.appendChild(t);
var o=document.getElementById("oldnode");
p.replaceChild(newn,o);
}
</script>
</body>
</html>
是可以的,不过需要将p.replaceChild(newn,o)更改为p[0].replaceChild(newn,o)。因为p现在得到的是一个数组,尽管只有一个div,可是它也是数组,所以需要用下标值找到它。
<div><b id="oldnode">JavaScript</b>是一个很常用的技术,为网页添加动态效果。</div>
<a href="javascript:replaceMessage()"> 将加粗改为斜体</a>
<script type="text/javascript">
function replaceMessage(){
var b=document.getElementById("oldnode");
var i=document.createElement("i");
i.innerText=b.innerText;
i.setAttribute("id","newnode");
b.parentNode.replaceChild(i,b);
}
</script>
JavaScript进阶篇
468782 学习 · 22507 问题
相似问题