例子為什么要創建一個文本節點追加到newdone這個節點中?
<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不是更簡單嗎?還有 按照之前的課程講的 (就是講子節點childNodes那節),計算總元素節點是7個的那個例子。這邊如果把文本節點追加到元素節點中,那么在計算子節點的時候,是不是在元素節點里面還要算上文本節點? 那7個子節點就不對了
2017-02-09
一開始我也很疑惑,看了一下這篇博客就明白了:http://www.cnblogs.com/swii/p/5694818.html
兩者的區別在于,innerHTML會將文本中包含的HTML代碼實現效果,而createTextNode只是純粹創造了文本節點,所以返回的效果也就是純文本內容。
希望能幫助到你
2017-02-10
nnerHTML的用法
tablerowObject.innerHTML
createTextNode的用法
createTextNode(data)
返回新創建的 Text 節點,表示指定的?data?字符串。
區別:1) innerHTML屬于HTML Dom
createTextNode屬于XML Dom
2) 雖然效果類似但是在某種情況下是有區別的
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);
在第一種情況下呈現出的效果是加粗的文本內容
而在第二種情況下呈現出的效果是<b>I love js</b>原文本。
所以兩者的區別在于,innerHTML會將文本中包含的HTML代碼實現效果,而createTextNode只是純粹創造了文本節點,所以返回的效果也就是純文本內容。
-----轉
2017-02-09
追加文本節點和innerHTML都可以;
若原先元素沒有文本節點,添加文本節點,childNodes會影響元素子節點數目
2017-02-09
好問題同求