成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

深入學習JavaScript DOM遍歷方法

開發 前端
這里向大家描述一下Javascript DOM遍歷的概念,基于ID、元素類型、類名查找元素非常有用,但是如果你想基于它在DOM樹中的位置來查找元素該怎么辦?這就用到了DOM遍歷。

本文向大家簡單介紹一下DOM遍歷的用法,比如說你有一個給定的元素,你想查找它的父元素、子元素中的一個、它的上一個或下一個節點兄弟節點,這就要用到DOM遍歷。

DOM遍歷

基于ID、元素類型、類名查找元素非常有用,但是如果你想基于它在DOM樹中的位置來查找元素該怎么辦?換句話說,你有一個給定的元素,你想查找它的父元素、子元素中的一個、它的上一個或下一個節點兄弟節點。例如,采用下面這段零碎的HTML代碼:

清單1:HTML碎片(一個table)

  1. <table> 
  2. <thead> 
  3. <tr> 
  4. <th>Name</th> 
  5. <th>EmailAddress</th> 
  6. <th>Actions</th> 
  7. </tr> 
  8. </thead> 
  9. <tbody> 
  10. <tridtrid="row-001"> 
  11. <td>JoeLennon</td> 
  12. <td>joe@joelennon.ie</td> 
  13. <td><ahrefahref="#">Edit</a>&nbsp;  
  14. <ahrefahref="#">Delete</a></td> 
  15. </tr> 
  16. <tridtrid="row-002"> 
  17. <td>JillMacSweeney</td> 
  18. <td>jill@example.com</td> 
  19. <td><ahrefahref="#">Edit</a>&nbsp;  
  20. <ahrefahref="#">Delete</a></td> 
  21. </tr> 
  22. </tbody> 
  23. </table> 
  24.  

 清單1使用縮進來說明其中每個元素節點在DOM樹中的位置。在這個實例中,table元素是根元素,有兩個子節點thead和tbody。thead元素有一個tr子節點,tr有三個孩子--所有的th元素。tbody元素有兩個tr子節點,每個tr節點有三個孩子。在上述每一行的第三個節點中進一步包含子節點,都是兩個鏈接標記。

◆正如你知道的那樣,你可以使用一個JavaScript框架的選擇函數通過ID很輕松的選擇一個元素。在這個實例中,有兩個元素擁有ID,它們是ID分別為row-001和row-002的tr元素。使用Prototype庫選擇第一個tr,可以使用下面的代碼:

  1. vartheRow=$('row-001');  
  2.  

在上一章,你還了解到,基于元素的類型或class使用選擇器來獲取元素。在這個實例中,你可以使用下面的語法來得到所有的td元素。

  1. varallCells=$$('td');  
  2.  

改代碼的主要問題在于它返回了每一個td元素。但是,如果你只想得到ID為row-001的tr的所有td元素該怎么辦?這正是DOM遍歷函數發揮作用的地方。首先,讓我們使用原型來選擇ID為row-001的tr的所有的子級。

  1. varfirstRowCells=theRow.childElements();  
  2.  

這將返回theRow變量(你最初設置的ID為row-001的tr)所有子元素的數組。

◆接下來,我們假設你只想得到該行的第一個子元素。在本例中,即包含“JoeLennon”文本的td元素。要做到這一點,使用下面的語句:

varfirstRowFirstCell=theRow.down();
真簡單!這個特定的使用方法等價于:

  1. varfirstRowFirstCell=theRow.childElements()[0];  
  2.  

也可以這樣表示:

  1. varfirstRowFirstCell=theRow.down(0);  
  2.  

JavaScript的索引從零開始,所以上面的語句主要告知JavaScript來選擇第一個子元素。要選擇第二個子元素,你可以這樣用:

  1. varfirstRowSecondCell=theRow.down(1);  
  2.  

或者,你可以在兄弟節點之間瀏覽DOM。本例中,第二個單元格是第一個單元格的下一個兄弟節點。因此,你可以使用下面的語句:

  1. varfirstRowSecondCell=firstRowFirstCell.next();  
  2.  

與down()函數工作一樣,選擇第三個單元格可以這樣使用。

  1. varfirstRowThirdCell=firstRowFirstCell.next(1);  
  2.  

◆除了使用索引來查找特定節點外,Prototype庫還可以使用CSS選擇器語法。在清單1中,我們要找到第二個包含JillMacSweeney’詳細信息的鏈接(“刪除”鏈接)。

  1. varsecondRowSecondLink=$('row-002').down('a',1);  
  2.  

在本例中,使用$函數來查找ID為row-002的那一行,向下遍歷到第二個后代a元素(錨點)。

一些框架還允許“菊花鏈式”的遍歷功能,這意味著你可以彼此連接遍歷命令。上面的例子中,Prototype庫的另一種表達方式是這樣的:

  1. varsecondRowSecondLink=$('row-002').down('a').next();  
  2.  

看看下面的例子:

  1. vardomTraversal=$('row-001').down().up().next().previous();  
  2.  

正如你所見,菊花鏈允許你連接多個DOM遍歷語句。事實上,上述例子實際上最終選擇ID為row-001的tr元素,所以菊花鏈又回到了開始的地方。
 

【編輯推薦】

  1. 技術分享 如何獲取Dom元素的X/Y坐標
  2. JQuery創建DOM元素方法解析
  3. JavaScript獲取HTML DOM節點元素詳解
  4. JavaScript和DOM輕松實現數據訪問
  5. HTML DOM與XML DOM的區別與聯系探究

 

 

責任編輯:佚名 來源: Denis'Blog
相關推薦

2010-09-28 09:22:34

DOM模型Html

2015-09-29 08:57:46

javascript對象

2010-09-28 16:22:17

DOM樹

2015-09-29 09:27:04

JavaScript對象

2010-10-09 10:10:55

JavaScriptFunction對象

2009-11-16 16:31:56

PHP數組刪除

2009-11-17 14:13:34

PHP配置

2010-09-13 14:24:17

JavaScript

2010-07-08 13:55:21

UML建模

2009-11-16 15:40:58

PHP數組函數

2010-06-29 15:29:22

UML建模流程

2010-09-28 14:44:56

遍歷DOM

2020-03-23 14:15:51

RadonDB安裝數據庫

2010-08-31 13:06:45

CSS

2010-08-26 09:58:01

CSS clear

2010-09-06 11:26:18

CSS偽類

2010-09-07 10:57:34

CSS偽類

2024-01-03 10:15:59

Python函數

2010-09-28 09:14:36

HTML DOMJavascript

2010-06-07 16:55:00

JavaScript
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 成年网站在线观看 | 99免费在线观看视频 | 午夜影院网站 | 国产69精品久久久久777 | 欧洲视频一区二区 | 国产激情精品视频 | 日韩精品久久久久 | 在线免费黄色小视频 | 亚洲欧美一区二区三区视频 | 欧美1区2区 | 99久久精品免费视频 | 免费在线观看一区二区 | 亚洲精品在线免费观看视频 | 中文字幕1区| 嫩草最新网址 | 欧美一级二级在线观看 | 久久综合久久久 | 亚洲精品乱码久久久久v最新版 | 第四色狠狠 | 久久国产精品免费一区二区三区 | 久久久免费电影 | 国产精品视频一区二区三 | 成人久久18免费网站图片 | 亚洲一区二区在线 | 在线国产一区二区三区 | 中文字幕在线人 | 国产精品99久久久久久宅男 | 亚洲看片网站 | 国产精品亚洲第一区在线暖暖韩国 | 国产精品 欧美精品 | 亚州中文| 国产一区二区三区免费 | 91精品久久久久久久久99蜜臂 | 欧美一级片在线观看 | 天天干天天想 | 亚洲视频在线一区 | 午夜午夜精品一区二区三区文 | 在线成人www免费观看视频 | 国产精品96久久久久久 | 在线观看视频一区二区三区 | 一级黄色片美国 |