試一試,補充函數 replaceMessage() 代碼,實現將 b 標簽替換成 i 標簽。我 這樣寫對不對?
<!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>
2020-08-07
var oldNode=document.creatElement("oldnode");
這是創建新節點,應該是獲取舊節點
var oldNode=document.getElementById("oldnode");
2020-06-10
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){
????函數體
};
不要過分深究適度哦