1, 操做一個dom節點其實就4個操做: javascript
更新:更新該DOM節點的內容,至關於更新了該DOM節點表示的HTML的內容;java
遍歷:遍歷該DOM節點下的子節點,以便進行進一步操做;python
添加:在該DOM節點下新增一個子節點,至關於動態增長了一個HTML節點;app
刪除:將該節點從HTML中刪除,至關於刪掉了該DOM節點的內容以及它包含的全部子節點。dom
2, 獲取節點方法編碼
第一種方法:spa
// 返回ID爲'test'的節點: var test = document.getElementById('test'); // 先定位ID爲'test-table'的節點,再返回其內部全部tr節點: var trs = document.getElementById('test-table').getElementsByTagName('tr'); // 先定位ID爲'test-div'的節點,再返回其內部全部class包含red的節點: var reds = document.getElementById('test-div').getElementsByClassName('red'); // 獲取節點test下的全部直屬子節點: var cs = test.children; // 獲取節點test下第一個、最後一個子節點: var first = test.firstElementChild; var last = test.lastElementChild;
第二種方法: code
// 經過querySelector獲取ID爲q1的節點: var q1 = document.querySelector('#q1'); // 經過querySelectorAll獲取q1節點內的符合條件的全部節點: var ps = q1.querySelectorAll('div.highlighted > p');
3,更新DOMip
innerHTML屬性 能夠修改一個DOM節點的文本內容,還能夠直接經過HTML片斷修改DOM節點內部的子樹:get
// 獲取<p id="p-id">...</p> var p = document.getElementById('p-id'); // 設置文本爲abc: p.innerHTML = 'ABC'; // <p id="p-id">ABC</p> // 設置HTML: p.innerHTML = 'ABC <span style="color:red">RED</span> XYZ'; // <p>...</p>的內部結構已修改
innerText 和 textContent屬性
// 獲取<p id="p-id">...</p> var p = document.getElementById('p-id'); // 設置文本: p.innerText = '<script>alert("Hi")</script>'; // HTML被自動編碼,沒法設置一個<script>節點: // <p id="p-id"><script>alert("Hi")</script></p>
修改節點的style屬性:
// 獲取<p id="p-id">...</p> var p = document.getElementById('p-id'); // 設置CSS: p.style.color = '#ff0000'; p.style.fontSize = '20px'; p.style.paddingTop = '2em';
4,動態的添加節點
var list = document.getElementById('list'), haskell = document.createElement('p'); haskell.id = 'haskell'; haskell.innerText = 'Haskell'; list.appendChild(haskell); <!-- HTML結構 --> <div id="list"> <p id="java">Java</p> <p id="python">Python</p> <p id="scheme">Scheme</p> <p id="haskell">Haskell</p> </div>