操做DOM

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">&lt;script&gt;alert("Hi")&lt;/script&gt;</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>
相關文章
相關標籤/搜索