2013-10-02 92 views
2

我正在學習HTML DOM模型,並且遇到了一個問題。我無法理解createDocumentFragment()方法在下面的代碼中如何工作。createDocumentFragment()方法如何工作?

HTML代碼:

<!DOCTYPE html> 
<html> 
<body> 

<ul><li>Coffee</li><li>Tea</li></ul> 

<button onclick="myFunction()">Try it</button> 

<script> 

function myFunction() 
{ 
var d=document.createDocumentFragment(); 
d.appendChild(document.getElementsByTagName("LI")[0]); 
d.childNodes[0].childNodes[0].nodeValue="Milk"; 
document.getElementsByTagName("UL")[0].appendChild(d); 
}; 

</script> 

</body> 
</html> 

我明白createDocumentFragment()方法創建一個假想的Node對象時,要提取您的document.And中的appendChild的部分是有用的()方法追加節點到一個node.But哪些呢下面均值最後一個孩子:

d.childNodes[0].childNodes[0].nodeValue="Milk"; 

不是應該d.childNodes[0].nodeValue="Milk";?請有人給我一個關於上述DOM模型是如何工作的清晰解釋!

回答

2

<li>內部有一個文本節點,代表字符串「Coffee」,這就是用「Milk」代替的內容。該片段的第一個孩子是<li>,其第一個孩子是文本節點。