請問哪里錯了
<!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(){
????????? if(document.getElementsByTagName("div").childNodes.nodeName=='b'){
???????????? var newnode = document.createElement("i");
???????????? var newnodeText = document.createTextNode("JavaScipt");
???????????? newnode.appendChild(newnodeText);
???????????? var oldNode = document.getElementById("oldnode");
???????????? oldNode.parentNode.replaceChild(newnode,oldNode);}
????????? else{
????????????? var oldNode = document.createElement("b");
????????????? var oldNodeText = document.createTextNode("JavaScipt");
????????????? oldNode.appendChild(oldNodeText);
????????????? newnode.setAttribute("id","newnode");
????????????? var newnode = document.getElementById("newnode");
????????????? newnode.parentNode.replaceChild(oldNode,newnode);}
???????? }
?????? }???
? </script>
?
?</body>
</html>
2018-08-21
你的代碼有幾處錯誤,第一:document.getElementsByTagName返回的是數組,不能直接.childNodes。childNodes返回的也是數組,不能直接.nodeName。
第二:nodeName返回的名字是大寫。
以上兩點更正后的代碼:document.getElementsByTagName("div")[0].childNodes[0].nodeName=='B'。
第三:else的最后一句代碼多了一個花括號。
2018-08-19
是要判斷第一個子節(jié)點 if(document.getElementsByTagName("div")[0].childNodes.nodeName=='b')