HTML DOM 導航
通過 HTML DOM,您能夠使用節點關係在節點樹中導航。
HTML DOM 節點列表
getElementsByTagName() 方法返回節點列表。節點列表是一個節點數組。
下麵的代碼選取文檔中的所有 <p> 節點:
實例
var x=document.getElementsByTagName("p");
可以通過下標號訪問這些節點。如需訪問第二個 <p>,您可以這麼寫:
y=x[1];
注意:
下標號從 0 開始。
HTML DOM 節點列表長度
length 屬性定義節點列表中節點的數量。
您可以使用 length 屬性來迴圈節點列表:
實例
x=document.getElementsByTagName("p");
for (i=0;i<x.length;i++)
{
document.write(x[i].innerHTML);
document.write("<br>");
}
實例解析:
- 獲取所有 <p> 元素節點
- 輸出每個 <p> 元素的文本節點的值
導航節點關係
您能夠使用三個節點屬性:parentNode、firstChild 以及 lastChild ,在文檔結構中進行導航。
請看下麵的 HTML 片段:
<html>
<head>
<meta charset="utf-8">
</head>
<body>
<p>Hello World!</p>
<div>
<p>DOM 是非常有用的!</p>
<p>這個實例演示了節點的關係。</p>
</div>
</body>
</html>
- 首個 <p> 元素是 <body> 元素的首個子元素(firstChild)
- <div> 元素是 <body> 元素的最後一個子元素(lastChild)
- <body> 元素是首個 <p> 元素和 <div> 元素的父節點(parentNode)
firstChild 屬性可用於訪問元素的文本:
實例
<p id="intro">Hello World!</p>
<script>
x=document.getElementById("intro");
document.write(x.firstChild.nodeValue);
</script>
DOM 根節點
這裏有兩個特殊的屬性,可以訪問全部文檔:
- document.documentElement - 全部文檔
- document.body - 文檔的主體
實例
<p>Hello World!</p>
<div>
<p>DOM 是非常有用的!</p>
<p>這個實例演示了 <b>document.body</b> 屬性。</p>
</div>
<script>
alert(document.body.innerHTML);
</script>
childNodes 和 nodeValue
除了 innerHTML 屬性,您也可以使用 childNodes 和 nodeValue 屬性來獲取元素的內容。
下麵的代碼獲取 id="intro" 的 <p> 元素的值:
實例
<p id="intro">Hello World!</p>
<script>
txt=document.getElementById("intro").childNodes[0].nodeValue;
document.write(txt);
</script>
在上面的例子中,getElementById 是一個方法,而 childNodes 和 nodeValue 是屬性。
在本教學中,我們將使用 innerHTML 屬性。不過,學習上面的方法有助於對 DOM 樹結構和導航的理解。