關于替換子節(jié)點
為什么不能直接獲取父節(jié)點,通過父節(jié)點直接調用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>是一個很常用的技術,為網頁添加動態(tài)效果。</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>
2016-08-15
是可以的,不過需要將p.replaceChild(newn,o)更改為p[0].replaceChild(newn,o)。因為p現在得到的是一個數組,盡管只有一個div,可是它也是數組,所以需要用下標值找到它。
2016-07-10
<div><b id="oldnode">JavaScript</b>是一個很常用的技術,為網頁添加動態(tài)效果。</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>