>[info]在 HTML DOM 中,所有事物都是節點。DOM 是被視為節點樹的 HTML。
根據 W3C 的 HTML DOM 標準,HTML 文檔中的所有內容都是節點:
1. 整個文檔是一個文檔節點
2. 每個 HTML 元素是元素節點
3. HTML 元素內的文本是文本節點
4. 每個 HTML 屬性是屬性節點
5. 注釋是注釋節點

## 節點的關系
>[info]父(parent)、子(child)和同胞(sibling)等術語用于描述這些關系。父節點擁有子節點。同級的子節點被稱為同胞(兄弟或姐妹)。

## 節點的屬性
>[info]通過節點的屬性,能夠獲取到每個節點之間的關系,并且可以通過這種關系,準確快速的獲取到相應節點的對象。
<table class="dataintable">
<tbody>
<tr>
<th>屬性 / 方法</th>
<th>描述</th>
</tr>
<tr>
<td><a>parentNode</a></td>
<td>返回元素的父節點。</td>
</tr>
<tr>
<td><a>childNodes</a></td>
<td>返回元素子節點的 NodeList。</td>
</tr>
<tr>
<td><a>firstChild</a></td>
<td>返回元素的首個子節點。</td>
</tr>
<tr>
<td><a>lastChild</a></td>
<td>返回元素的最后一個子元素。</td>
</tr>
<tr>
<td><a>nextSibling</a></td>
<td>返回位于相同節點樹層級的下一個節點。</td>
</tr>
<tr>
<td><a>previousSibling</a></td>
<td>返回位于相同節點樹層級的前一個元素。</td>
</tr>
</tbody>
</table>
## 節點的方法
>[info]我們之前對頁面元素的操作,都是在操作現有的元素, 那么我們如何動態的創建、刪除、更改、復制元素,給 元素添加屬性、樣式呢?就就需要用到我們節點的方法。
### createElement()
>[info]創建元素節點。
~~~
<script type="text/javascript">
var Elemment = document.createElement("元素標簽名");
</script>
~~~
### createTextNode()
>[info]創建文本節點。
~~~
<script type="text/javascript">
var textNode = document.createTextNode("文本");
</script>
~~~
### appendChild()
>[info]把新的子節點添加到指定節點。
~~~
<script type="text/javascript">
node.appendChild(node);
</script>
~~~
### insertBefore()
>[info]方法在您指定的已有子節點之前插入新的子節點。
~~~
<script type="text/javascript">
nnode.insertBefore(newnode,existingnode)
</script>
~~~
### removeChild()
>[info]方法指定元素的某個指定的子節點。
~~~
<script type="text/javascript">
nnode.removeChild(node)
</script>
~~~
### replaceChild()
>[info]方法用新節點替換某個子節點。
~~~
<script type="text/javascript">
nnode.replaceChild(newnode,oldnode)
</script>
~~~
### cloneNode()
>[info]方法創建節點的拷貝,并返回該副本。。
~~~
<script type="text/javascript">
node.cloneNode(deep);
</script>
~~~
該方法有一個參數(true 或 false)。如果設置為true, 所有的子節點也會克隆,否則只會克隆本節點。
>[danger]**作業:**寫一個模板聊天室的頁面,點擊發送,把內容追加到聊天窗口,通過節點關系,把表格中的一行數據整行刪除。
- 序言
- 第一章:準備工作
- 寫在學習之前的話
- web應用開發結構
- 開發工具/環境
- 第二章:展現層面(HTML/CSS)
- HTML簡介
- HTML基礎
- HTML編碼
- HTML鏈接
- HTML圖像
- HTML列表
- HTML表單
- HTML表格(分水嶺)
- HTML 實體
- HTML框架
- CSS層疊樣式表
- CSS選擇器
- CSS文本/字體
- CSS繼承和疊加
- CSS框模型
- CSS浮動(分水嶺)
- CSS定位
- CSS背景
- CSS圖標字體
- CSS補充
- 開發技巧
- 第三章:展現層面(Javascript)
- JS簡介
- JS實現
- JS輸出交互
- JS變量
- JS數據類型
- JS運算符
- JS流程控制(分水嶺)
- JS函數
- JS數組
- JS對象(分水嶺)
- JS數組對象
- JS字符串對象
- JS數學對象
- JS日期對象
- JS BOM對象(分水嶺)
- JS DOM對象
- JS事件對象
- JS元素對象
- JS DOM節點
- 第四章:展現層面(Jquery)
- JQ簡介
- JQ使用
- JQ選擇器
- JQ篩選
- JQ屬性
- JQ-CSS
- JQ事件
- JQ文檔處理
- JQ效果
- JQ-ajax
- 第五章:邏輯/業務層面(PHP)
- PHP簡介
- PHP變量
- PHP數據類型
- PHP常量
- PHP運算符
- PHP流程控制
- PHP函數(分水嶺)
- PHP日期
- PHP數學
- PHP數組
- PHP字符串
- PHP正則表達式(分水嶺)
- PHP目錄操作
- PHP文件
- PHP上傳/下載
- PHP面向對象(分水嶺)
- PHP圖像處理
- PHP會話控制
- Ajax異步處理
- PHPMysql擴展
- PHPMysqli擴展
- PHPPdo擴展
- PHP接口
- PHP命名空間
- 第六章:邏輯/業務層面(框架設計)
- 第七章:存儲層面(mysql)
- Mysql基礎
- Mysql Sql簡介
- Mysql數據庫
- Mysql數據類型
- Mysql數據表
- Mysql操作記錄
- Mysql查詢
- Mysql修改表結構
- Mysql日期與時間
- Mysql分組統計
- Mysql多表查詢
- Mysql安全
- Mysql存儲引擎
- Mysql事務
- Mysql視圖
- Mysql觸發器
- Mysql存儲過程
- Mysql存儲函數
- Mysql優化
- 第八章:服務器(Linux)
- Linux介紹與安裝
- Shell
- 目錄與文件操作
- VIM編輯器使用
- 帳號管理
- SUDO
- 權限控制
- 壓縮與打包
- 軟件安裝
- 計劃任務
- 進程管理
- 寶塔Linux面板