亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

這兩個程序里的appendChild用法有什么不同?

這兩個程序里的appendChild用法有什么不同?

尼古拉車夫 2016-11-23 23:52:07
<ul id="test">? <li>JavaScript</li>? <li>HTML</li></ul>?<script type="text/javascript">? var otest = document.getElementById("test"); ?? var newNode=document.createElement("li");? ? newNode.innerHTML="PHP";? ? otest.appendChild(newNode); ?</script>?------------------------------------------------------<div><b id="oldnode">JavaScript</b>是一個很常用的技術,為網頁添加動態效果。</div>? <a href="javascript:replaceMessage()"> 將加粗改為斜體</a>??? ? <script type="text/javascript">? ? ? function replaceMessage(){? ? ? ? var newNode=document.createElement("i"); ? var newNodeText=document.createTextNode("JavaScript");? ? ? ? newNode.appendChild(newNodeText);? ? ? ? var oldNode=document.getElementById("oldnode");? ? ? ? oldNode.parentNode.replaceChild(newNode,oldNode);? ? ? ?} ? ?? </script>
查看完整描述

4 回答

已采納
?
MarlboroKay

TA貢獻189條經驗 獲得超236個贊

區別:1)  innerHTML屬于HTML Dom

      createTextNode屬于XML Dom

   2)  雖然效果類似但是在某種情況下是有區別的

var?p=document.createElement("p");
p.className="message";
p.innerHTML="<b>I?love?js</b>";
document.body.appendChild(p);


var?p=document.createElement("p");
p.className="message";???
var?textnode=document.createTextNode("<b>I?love?js</b>");
p.appendChild(textnode);5?document.body.appendChild(p);

在第一種情況下呈現出的效果是加粗的文本內容

而在第二種情況下呈現出的效果是<b>I love js</b>原文本。

所以兩者的區別在于,innerHTML會將文本中包含的HTML代碼實現效果,而createTextNode只是純粹創造了文本節點,所以返回的效果也就是純文本內容。

希望能幫到你,望采納!


查看完整回答
1 反對 回復 2016-11-24
?
woshiajuana

TA貢獻211條經驗 獲得超152個贊

沒什么區別的

appendChild() 方法向節點添加一個子節點。

只不過前者添加的是元素節點 li

后者添加的是文本節點?JavaScript

查看完整回答
1 反對 回復 2016-11-24
?
亂也

TA貢獻12條經驗 獲得超0個贊

innerHTML在替換內容時改變的是原本文檔內容 DOMappendChild只存在JAVAscript里更新內容不改變原本文檔。 書上是這樣說得
查看完整回答
反對 回復 2016-12-01
  • 亂也
    亂也
    說錯了,innerHTML是把所有內容替換掉的
  • 4 回答
  • 0 關注
  • 2057 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號