概要:
編程接口
可通過 JavaScript 對 HTML DOM 進行訪問。
所有 HTML 元素被定義為對象,而編程接口則是對象方法和對象屬性。
方法是您能夠執行的動作(比如添加或修改元素)。
屬性是您能夠獲取或設置的值(比如節點的名稱或內容)。
(一)通過getElement系列方法:
document.getElementById();//id
document.getElementsByTagName();//標簽名;Elements加了S,選出來是類數組;
document.getElementsByName();//name屬性,部分標簽可以;Elements加了S,選出來是類數組;
document.getElementsByClassName();//class;Elements加了S,選出來是類數組;IE9以下不支持;
document代表整個文檔
ById是獲取一個元素節點;
ByTagName,ByName,ByClassName 獲取的是類數組;
(二)遍歷節點樹
parentNode //父級元素,頂級父級元素為document;
childNodes //子節點們
firstChild //第一個子節點
lastChild //最后一個子節點
nextSibling //后一個兄弟節點
previousSiling //前一個兄弟節點
注意子節點,不僅僅包括元素節點,文本、注釋等都屬於節點;
(三)基於元素遍歷節點樹
parentElement (IE9及以下版本不支持)
children
nextElementSibling (IE9及以下版本不支持)
previousElementSibling (IE9及以下版本不支持)
firstElementChild (IE9及以下版本不支持)
lastElementChild (IE9及以下版本不支持)
除了children,其他幾個IE9以下版本不支持;
1 <body>
2 <div class="div1">
3 <!-- This is comment -->
4 <strong></strong>
5 <p>
6 <span></span>
7 </p>
8 <em></em>
9 </div>
10
11 <script type="text/javascript">
12 var div = document.getElementsByTagName('div')[0]; 13 </script>
14 </body>
補充節點知識:
在文檔對象模型 (DOM) 中,每個節點都是一個對象。DOM 節點有三個重要的屬性 :
1. nodeName : 節點的名稱
2. nodeValue :節點的值
3. nodeType :節點的類型 (重點屬性,重點學習)
一、nodeName 屬性: 節點的名稱,是只讀的。
1. 元素節點的 nodeName 與標簽名相同
2. 屬性節點的 nodeName 是屬性的名稱
3. 文本節點的 nodeName 永遠是 #text
4. 文檔節點的 nodeName 永遠是 #document
二、nodeValue 屬性:節點的值
1. 元素節點的 nodeValue 是 undefined 或 null
2. 文本節點的 nodeValue 是文本自身
3. 屬性節點的 nodeValue 是屬性的值
三、nodeType 屬性: 節點的類型,是只讀的。以下常用的幾種結點類型:
舉例練下:
如下程序片段實現功能:返回某個節點所有元素子節點(不使用children方法)
1 <body>
2 <div class="div1">
3 <!-- This is comment -->
4 <strong></strong>
5 <p>
6 <span></span>
7 </p>
8 <em></em>
9 </div>
10
11 <script type="text/javascript">
12 var div = document.getElementsByTagName('div')[0]; 13
14 function returnElementChild(){ 15 var arr = [], 16 child = div.childNodes; 17 for(var i = 0; i < child.length; i++){ 18 if(child[i].nodeType == 1) 19 arr.push(child[i]); 20 } 21 return arr; 22 } 23
24 console.log(returnElementChild(div)); 25 </script>
26 </body>