請問為什么另一種寫法不可以?
舉例中,代碼為:
? <script type="text/javascript">
? ? function replaceMessage(){
? ? ? ? var newnode=document.createElement("p");
? ? ? ? var newnodeText=document.createTextNode("JavaScript");
? ? ? ? newnode.appendChild(newnodeText);
? ? ? ? var oldNode=document.getElementById("oldnode");
? ? ? ? oldNode.parentNode.replaceChild(newnode,oldNode);
? ? }
? </script>
? <h1 id="oldnode">Java</h1>
? <a href="javascript:replaceMessage()">"Java"替換"JavaScript"</a>
為什么不可以寫成:
? <script type="text/javascript">
? ? function replaceMessage(){
? ? ? ? var newnode=document.createElement("p");
? ? ? ? newnode.appendChild(newnodeText);
? ? ? ? newnodeText.innerHTML="JavaScript";
? ? ? ? var oldNode=document.getElementById("oldnode");
? ? ? ? oldNode.parentNode.replaceChild(newnode,oldNode);
? ? }
? </script>
? <h1 id="oldnode">Java</h1>
? <a href="javascript:replaceMessage()">"Java"替換"JavaScript"</a>
2016-06-16
第一種方法:你創(chuàng)建了一個P標(biāo)簽節(jié)點,一個文本節(jié)點,所以將文本節(jié)點插入到P節(jié)點后面是可以的。
第二種方法:你只創(chuàng)建了一個P節(jié)點,想用innerHTML來顯示內(nèi)容,但innerHTML是直接顯示指定標(biāo)簽的內(nèi)容或者賦值給指定標(biāo)簽。你用newnodeText這個是沒有意義的,這是個變量名,需要聲明、賦值、調(diào)用,如你的第一種方法,不能直接拿來用,所以正確的寫法是:
<script type="text/javascript">
? ? function replaceMessage(){
? ? ? ? var newnode=document.createElement("p");
? ? ? ? newnode.innerHTML="JavaScript";
? ? ? ? var oldNode=document.getElementById("oldnode");
? ? ? ? oldNode.parentNode.replaceChild(newnode,oldNode);
? ? }
? </script>