例子為什么要創(chuàng)建一個文本節(jié)點追加到newdone這個節(jié)點中?
<script type="text/javascript">
function replaceMessage() {
? var newnode=document.createElement("p");
? var newnodeText=document.createElement("JS");
? // newnode.innerHTML="JS"; 這樣不是更簡單嗎
? var oldNode = document.getElementById('oldnode');
? oldNode.parentNode.replaceChild(newnode,oldnode);
}
</script>
直接用innerHTML不是更簡單嗎?還有 按照之前的課程講的 (就是講子節(jié)點childNodes那節(jié)),計算總元素節(jié)點是7個的那個例子。這邊如果把文本節(jié)點追加到元素節(jié)點中,那么在計算子節(jié)點的時候,是不是在元素節(jié)點里面還要算上文本節(jié)點? 那7個子節(jié)點就不對了
2017-02-09
一開始我也很疑惑,看了一下這篇博客就明白了:http://www.cnblogs.com/swii/p/5694818.html
兩者的區(qū)別在于,innerHTML會將文本中包含的HTML代碼實現(xiàn)效果,而createTextNode只是純粹創(chuàng)造了文本節(jié)點,所以返回的效果也就是純文本內(nèi)容。
希望能幫助到你
2017-02-10
nnerHTML的用法
tablerowObject.innerHTML
createTextNode的用法
createTextNode(data)
返回新創(chuàng)建的 Text 節(jié)點,表示指定的?data?字符串。
區(qū)別:1) innerHTML屬于HTML Dom
createTextNode屬于XML Dom
2) 雖然效果類似但是在某種情況下是有區(qū)別的
1 var p=document.createElement("p");2 p.className="message";3 p.innerHTML="<b>I love js</b>";4 document.body.appendChild(p);
1 var p=document.createElement("p");2 p.className="message"; ?
3 var textnode=document.createTextNode("<b>I love js</b>");4 p.appendChild(textnode);5 document.body.appendChild(p);
在第一種情況下呈現(xiàn)出的效果是加粗的文本內(nèi)容
而在第二種情況下呈現(xiàn)出的效果是<b>I love js</b>原文本。
所以兩者的區(qū)別在于,innerHTML會將文本中包含的HTML代碼實現(xiàn)效果,而createTextNode只是純粹創(chuàng)造了文本節(jié)點,所以返回的效果也就是純文本內(nèi)容。
-----轉(zhuǎn)
2017-02-09
追加文本節(jié)點和innerHTML都可以;
若原先元素沒有文本節(jié)點,添加文本節(jié)點,childNodes會影響元素子節(jié)點數(shù)目
2017-02-09
好問題同求