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