我們來個例子,一個HTML里包含一段文本和一個無序的列表。 上面例子里,我們使用getElementById DOM方法來訪問p段落,在SCRIPT里添加如下代碼: 變數introParagraph現在已經引用到該DOM節點上了,我們可以對該節點做很多事情,比如查詢內容和屬性,或者其它任何操作,甚至 ...
我們來個例子,一個HTML里包含一段文本和一個無序的列表。
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>JavaScript!</title>
</head>
<body>
<p id="intro">My first paragraph...</p>
<ul>
<li>List item 1</li>
<li>List item 1</li>
<li>List item 1</li>
<li>List item 1</li>
<li>List item 1</li>
</ul>
<script type="text/javascript">
// <![CDATA[
// ]]>
</script>
</body>
</html>
上面例子里,我們使用getElementById DOM方法來訪問p段落,在SCRIPT里添加如下代碼:
var introParagraph = document.getElementById('intro');
// 現在有了該DOM節點,這個DOM節點展示的是該信息段落
變數introParagraph現在已經引用到該DOM節點上了,我們可以對該節點做很多事情,比如查詢內容和屬性,或者其它任何操作,甚至可以刪除它,克隆它,或者將它移到到DOM樹的其它節點上。
文檔上的任何內容,我們都可以使用JavaScript和DOM API來訪問,所以類似地,我們也可以訪問上面的無序列表,唯一的問題是該元素沒有ID屬性,如果ID的話就可以使用相同的方式,或者使用如下getElementsByTagName方式:
var allUnorderedLists = document.getElementsByTagName('ul');
// 'getElementsByTagName'返回的是一個節點集合
// - 和數組有點相似
getElementsByTagName
getElementsByTagName方法返回的是一個節點集合,和數組類似也有length屬性,重要的一個特性是他是live的——如果你在該元素里添加一個新的li元素,這個集合就會自動更新,介於他和數組類型,所以可以和訪問數組一樣的方法來訪問,所以從0開始:
// 訪問無序列表: [0]索引
var unorderedList = document.getElementsByTagName('ul')[0];
// 獲取所有的li集合:
var allListItems = unorderedList.getElementsByTagName('li');
// 迴圈遍歷
for (var i = 0, length = allListItems.length; i < length; i++) {
// 彈出該節點的text內容
alert(allListItems[i].firstChild.data);
}