最近在學DOM,但是還是沒有辦法很好的記住API,想找些例子來練習,網上的例子將一個個DOM對象方法挨個舉例,並沒有集合在一起用,效果不盡人意。所以自己寫一份實例,順便鞏固下學到的知識。
這個例子很簡單,主要就是操作ul下面的li,但是會貫穿很多DOM的對象方法。
首先在body下面創建一個ul,注意<ul></ul> 之間不要有空格或回車,否則會造成文本節點。
```
<body>
<ul id="fruit"></ul>
</body>
```
接下來就是Javascript代碼了,首先我們需要通過id為“fruit”來獲取ul這個節點。
```
var oUl = document.getElementById("fruit");
```
通過getElementById()便可以獲得ul這個節點了,之后我們要在ul節點下面創建子節點。通過createElement()創建li節點,然后再通過textContent屬性來給新建的節點增加內容,最后在通過appendChild()將li節點綁定到ul上面。
```
var newNode1 = document.createElement("li");
newNode1.textContent = "第一個節點";
oUl.appendChild(newNode1);
var newNode2 = document.createElement("li");
newNode2.textContent = "第二個節點";
oUl.appendChild(newNode2);
```
這樣我們的網頁上就已經有兩個節點了,看下網頁效果。

接下來,我們要在“第二個節點”的前面插入“第三個節點”。所以我們需要先獲取到“第二個節點”,可以通過childNode和nodeList實現,獲取到之后在通過insertBefore()進行插入。
```
var nodeList = oUl.childNodes;
var newNode3 = document.createElement("li");
newNode3.textContent = "第三個節點";
oUl.insertBefore(newNode3,nodeList[1]);
```
效果如下:

現在,我打算用“第四個節點”替換掉“第一個節點”,這里需要用的replaceChild()函數以及獲取第一個元素firstChild。
```
var newNode4 = document.createElement("li");
newNode4.textContent = "第四個節點";
oUl.replaceChild(newNode4,oUl.firstChild);
```
效果如下:

最后,我們來移除最后一個節點,也就是“第二個節點”,用到了lastChild,不過在移除之前,需要用hasChildNodes來判斷oUl是否有子節點。
```
if(oUl.hasChildNodes){
oUl.removeChild(oUl.lastChild);
}
```

至此,DOM簡單的實例完成了。<br/>
這里是完整代碼
```
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>DOM</title>
<style>
body{background:#f1f1f1;}
</style>
<script>
window.onload = function(){
var oUl = document.getElementById("fruit");//獲取id為“fruit”的元素
var newNode1 = document.createElement("li");//創建一個li節點
newNode1.textContent = "第一個節點";//給新創建的li節點賦值
oUl.appendChild(newNode1);//添加到oUl上
var newNode2 = document.createElement("li");
newNode2.textContent = "第二個節點";
oUl.appendChild(newNode2);
var nodeList = oUl.childNodes;
var newNode3 = document.createElement("li");
newNode3.textContent = "第三個節點";
oUl.insertBefore(newNode3,nodeList[1]);//newNode3插入到nodeList[1]之前
var newNode4 = document.createElement("li");
newNode4.textContent = "第四個節點";
oUl.replaceChild(newNode4,oUl.firstChild);//newNode4替換掉oUl的第一個子節點
if(oUl.hasChildNodes){//如果oUl存在子節點
oUl.removeChild(oUl.lastChild);//刪除oUl的最后一個節點
}
}
</script>
</head>
<body>
<ul id="fruit"></ul>
</body>
</html>
```