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

HTML DOM入門級知識手冊

開發 前端
HTML文檔對象模型(HTML Document Object Model)定義了訪問和處理HTML文檔的標準方法,下面我們將結合實例,詳細的介紹HTML DOM。

HTML DOM定義了訪問和操作HTML文檔的標準方法。HTML DOM 把HTML文檔呈現為帶有元素、屬性和文本的樹結構(節點樹)。

51CTO推薦閱讀:大話HTML DOM與XML DOM的區別與聯系

HTML DOM簡介

HTML文檔對象模型(HTML Document Object Model)定義了訪問和處理HTML文檔的標準方法。

您應當具備的基礎知識

在繼續學習之前,您需要對下面的知識有基本的了解:

◆HTML / XHTML

◆JavaScript

什么是DOM?

通過JavaScript,您可以重構整個HTML文檔。您可以添加、移除、改變或重排頁面上的項目。要改變頁面的某個東西,JavaScript就需要對HTML文檔中所有元素進行訪問的入口。這個入口,連同對HTML元素進行添加、移動、改變或移除的方法和屬性,都是通過文檔對象模型來獲得的(DOM)。

在1998年,W3C發布了***級的DOM規范。這個規范允許訪問和操作HTML頁面中的每一個單獨的元素。所有的瀏覽器都執行了這個標準,因此,DOM的兼容性問題也幾乎難覓蹤影了。DOM可被JavaScript用來讀取、改變HTML、XHTML以及XML文檔。DOM被分為不同的部分(核心、XML及HTML)和級別(DOM Level 1/2/3):

◆Core DOM:定義了一套標準的針對任何結構化文檔的對象。

◆XML DOM:定義了一套標準的針對XML文檔的對象。

◆HTML DOM:定義了一套標準的針對HTML文檔的對象。

HTML DOM 節點

HTML文檔中的每個成分都是一個節點。

節點

根據DOM,HTML文檔中的每個成分都是一個節點。DOM是這樣規定的:

◆整個文檔是一個文檔節點

◆每個HTML標簽是一個元素節點

◆包含在HTML元素中的文本是文本節點

◆每一個HTML屬性是一個屬性節點

◆注釋屬于注釋節點

Node層次

節點彼此都有等級關系。HTML文檔中的所有節點組成了一個文檔樹(或節點樹)。HTML文檔中的每個元素、屬性、文本等都代表著樹中的一個節點。樹起始于文檔節點,并由此繼續伸出枝條,直到處于這棵樹***級別的所有文本節點為止。下面這個圖片表示一個文檔樹(節點樹):

HTML DOM 節點樹

一棵節點樹中的所有節點彼此都是有關系的。

文檔樹(節點數)

  1. 請看下面這個HTML文檔:  
  2. <html> 
  3.   <head> 
  4.     <title>DOM Tutorial</title>   
  5.   </head>   
  6.   <body>   
  7.     <h1>DOM Lesson one</h1>   
  8.     <p>Hello world!</p>   
  9.   </body>   
  10. </html> 

上面所有的節點彼此間都存在關系。除文檔節點之外的每個節點都有父節點。舉例,<head> 和 <body>的父節點是<html>節點,文本節點"Hello world!"的父節點是<p>節點。

大部分元素節點都有子節點。比方說,<head>節點有一個子節點:<title>節點。<title>節點也有一個子節點:文本節點"DOM Tutorial"。當節點分享同一個父節點時,它們就是同輩(同級節點)。比方說,<h1>和 <p>是同輩,因為它們的父節點均是<body>節點。

節點也可以擁有后代,后代指某個節點的所有子節點,或者這些子節點的子節點,以此類推。比方說,所有的文本節點都是<html>節點的后代,而***個文本節點是<head>節點的后代。節點也可以擁有先輩。先輩是某個節點的父節點,或者父節點的父節點,以此類推。比方說,所有的文本節點都可把<html>節點作為先輩節點。

#p#

HTML DOM訪問節點

通過DOM,您可訪問HTML文檔中的每個節點。

查找并訪問節點

你可通過若干種方法來查找您希望操作的元素:

◆通過使用 getElementById() 和 getElementsByTagName() 方法。

◆通過使用一個元素節點的parentNode、firstChild以及lastChild屬性。

getElementById() 和 getElementsByTagName()

getElementById() 和 getElementsByTagName()這兩種方法,可查找整個HTML文檔中的任何HTML元素。

這兩種方法會忽略文檔的結構。假如您希望查找文檔中所有的<p>元素,getElementsByTagName()會把它們全部找到,不管<p>元素處于文檔中的哪個層次。同時,getElementById()方法也會返回正確的元素,不論它被隱藏在文檔結構中的什么位置。這兩種方法會像您提供任何你所需要的HTML元素,不論它們在文檔中所處的位置!getElementById()可通過指定的ID來返回元素:

  1. document.getElementById("ID");  

注釋:getElementById() 無法工作在XML中。在XML文檔中,您必須通過擁有類型id的屬性來進行搜索,而此類型必須在XML DTD中進行聲明。

getElementsByTagName() 方法會使用指定的標簽名返回所有的元素(作為一個節點列表),這些元素是您在使用此方法時所處的元素的后代。getElementsByTagName() 可被用于任何的HTML元素:

getElementsByTagName() 語法

  1. document.getElementsByTagName("標簽名稱");  

或者:

  1. document.getElementById('ID').getElementsByTagName("標簽名稱");  

實例 1

下面這個例子會返回文檔中所有<p>元素的一個節點列表:

  1. document.getElementsByTagName("p");  

實例 2

下面這個例子會返回所有<p>元素的一個節點列表,且這些<p>元素必須是id為"maindiv"的元素的后代:

  1. document.getElementById('maindiv').getElementsByTagName("p");  

節點列表(nodeList)

當我們使用節點列表時,通常要把此列表保存在一個變量中,就像這樣:

  1. var x=document.getElementsByTagName("p"); 

現在,變量x包含著頁面中所有<p>元素的一個列表,并且我們可以通過它們的索引號來訪問這些<p>元素。注釋:索引號從0開始。您可以通過使用length屬性來循環遍歷節點列表:

  1. var x=document.getElementsByTagName("p");  
  2. for (var i=0;i<x.length;i++)  
  3.   {   
  4.   // do something with each paragraph  
  5.   } 

您也可以通過索引號來訪問某個具體的元素。要訪問第三個<p>元素,您可以這么寫:

  1. var y=x[2]; 

parentNode、firstChild以及lastChild

這三個屬性 parentNode、firstChild 以及 lastChild 可遵循文檔的結構,在文檔中進行“短距離的旅行”。請看下面這個HTML片段:

  1. <table> 
  2.   <tr> 
  3.     <td>John</td> 
  4.     <td>Doe</td> 
  5.     <td>Alaska</td> 
  6.   </tr> 
  7. </table> 

在上面的HTML代碼中,***個<td>是<tr>元素的***子元素(firstChild),而***一個<td>是<tr>元素的***一個子元素(lastChild)。此外,<tr>是每個<td>元素的父節點(parentNode)。對firstChild最普遍的用法是訪問某個元素的文本:

  1. var x=[a paragraph];  
  2. var text=x.firstChild.nodeValue;  

parentNode屬性常被用來改變文檔的結構。假設您希望從文檔中刪除帶有id為"maindiv"的節點:

  1. var x=document.getElementById("maindiv");  
  2. x.parentNode.removeChild(x);  

首先,您需要找到帶有指定id的節點,然后移至其父節點并執行removeChild()方法。

#p#

根節點

有兩種特殊的文檔屬性可用來訪問根節點:

  1. document.documentElement   
  2. document.body  

***個屬性可返回存在于XML以及HTML文檔中的文檔根節點。第二個屬性是對HTML頁面的特殊擴展,提供了對<body>標簽的直接訪問。

HTML DOM 節點信息

nodeName、nodeValue以及nodeType包含有關于節點的信息。

節點信息

每個節點都擁有包含著關于節點某些信息的屬性。這些屬性是:

◆nodeName(節點名稱)

◆nodeValue(節點值)

◆nodeType(節點類型)

nodeName

nodeName屬性含有某個節點的名稱。

◆元素節點的nodeName是標簽名稱

◆屬性節點的nodeName是屬性名稱

◆文本節點的nodeName永遠是#text

◆文檔節點的nodeName永遠是#document

注釋:nodeName所包含的XML元素的標簽名稱永遠是大寫的

nodeValue

◆對于文本節點,nodeValue屬性包含文本。

◆對于屬性節點,nodeValue屬性包含屬性值。

◆nodeValue屬性對于文檔節點和元素節點是不可用的。

nodeType

nodeType屬性可返回節點的類型。最重要的節點類型是:

一個 HTML DOM 實例

下面這個例子向我們展示了當一個用戶在文檔中點擊時,HTML文檔的背景顏色如何被改變。

  1. <html> 
  2. <head> 
  3. <script type="text/javascript"> 
  4. function ChangeColor()  
  5. {  
  6. document.body.bgColor="yellow" 
  7. }  
  8. </script> 
  9. </head> 
  10. <body onclick="ChangeColor()"> 
  11. Click on this document!  
  12. </body> 
  13. </html> 

原文鏈接:http://www.webjx.com/htmldata/2007-09-21/1190376115.html

【編輯推薦】

  1. 大話HTML DOM與XML DOM的區別與聯系
  2. JavaScript DOM特性與應用詳解
  3. JavaScript DOM的本質及操作方法 
責任編輯:王曉東 來源: 網頁教學網
相關推薦

2010-09-28 14:08:28

DOM

2010-09-28 09:33:25

DOM模型

2010-12-14 09:22:27

HTML 5

2010-06-23 10:55:10

FreeBSD入門級命

2010-09-08 12:45:16

2021-02-08 12:59:12

Git 控制系統

2010-09-28 10:44:30

HTML DOM參考手

2010-01-20 10:36:33

2010-08-31 08:59:06

marginHTML

2011-03-25 09:09:29

算法數據庫

2011-03-25 09:29:03

算法數據庫

2011-03-25 11:01:33

算法數據庫

2011-08-11 22:09:46

激光打印機推薦

2013-05-06 09:14:26

BigQuery大數據分析大數據分析入門

2025-04-15 10:20:00

FastAPI角色權限系統RBAC

2017-07-21 17:19:45

戴爾

2011-05-10 14:53:27

專業顯卡評測

2015-07-13 11:20:01

iPhone內存蘋果

2016-03-28 09:54:27

ios開發入門

2017-04-07 10:49:54

NVIDIA入門GTX 1030
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 免费能直接在线观看黄的视频 | 国产精品久久久久久久久免费软件 | 玖玖国产| 欧美日韩国产一区二区三区 | 国产精品久久久久久久午夜片 | 中文字幕 在线观看 | 99re在线视频 | 成人一区二区三区视频 | 91大神新作在线观看 | 色av一区二区 | 亚洲国产成人久久综合一区,久久久国产99 | 成人福利在线视频 | 精品国产一区二区国模嫣然 | 新91视频网| 午夜影院污 | 狠狠的干狠狠的操 | 欧美爱爱视频 | 性色的免费视频 | 日韩三区 | 9999国产精品欧美久久久久久 | 99成人| 91成人在线 | 一区在线视频 | 综合色久 | 三级黄色片在线观看 | 懂色中文一区二区三区在线视频 | 国产激情视频网 | 日日夜夜精品视频 | 国产精品麻 | 拍真实国产伦偷精品 | 一级aaaaaa毛片免费同男同女 | 日韩成人在线网站 | 免费看黄色小视频 | 四虎成人精品永久免费av九九 | 日韩精品在线看 | 国产精品色一区二区三区 | 亚洲福利一区二区 | 久久精品一区二区三区四区 | 国产欧美视频一区二区 | 成人免费视频观看 | 99久久国产免费 |