JavaScript DOM操作之查找元素節點


                                        概要: 

編程接口

可通過 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>

 


 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM