從 JavaScript 的觀點(diǎn)來看,網(wǎng)頁上的每個(gè) HTML 標(biāo)簽都是一個(gè) DOM 對(duì)象,標(biāo)簽的屬性也是 DOM 對(duì)象的屬性。如:
從 JavaScript 的觀點(diǎn)來看,這個(gè) 標(biāo)簽是一個(gè) Image 對(duì)象,它是 DOM 對(duì)象的一種。它的 id、src、width、border 屬性的值已經(jīng)指定,其它屬性采用默認(rèn)值。
利用 JavaScript 程序可以訪問 DOM 對(duì)象,實(shí)際上就是用程序訪問一個(gè) HTML 標(biāo)簽。你可以通過編程修改一個(gè) DOM 對(duì)象的屬性,也就是用程序修改一個(gè) HTML 標(biāo)簽的屬性,使標(biāo)簽變得可控。
DOM 對(duì)象的屬性通常與相應(yīng)的 HTML 標(biāo)簽的屬性相對(duì)應(yīng),名字通常也是相同的,但 DOM 對(duì)象的屬性需區(qū)分大小寫。比如 border 屬性可以用在 、
等幾種標(biāo)簽中,則對(duì)應(yīng)的 Image 對(duì)象、Table 對(duì)象等 DOM 對(duì)象也擁有 border 屬性,取值方法也相同。
有個(gè)別 DOM 屬性的名字和 HTML 標(biāo)簽的屬性名字不同,但它們實(shí)際上是同一個(gè)屬性。比如 HTML 標(biāo)簽的 class 屬性對(duì)應(yīng)的 DOM 屬性是className (注意大小寫)。這是因?yàn)?class 是 JavaScript 保留字,而屬性名是不能和保留字同名的。
還有一些 DOM 屬性沒有與之對(duì)應(yīng)的 HTML 屬性,比如 innerHTML 是一個(gè) DOM 屬性,它代表的是一個(gè)標(biāo)簽所包含的內(nèi)容。利用這個(gè)屬性可以修改一個(gè) HTML 的開始標(biāo)簽和結(jié)束標(biāo)簽之間的內(nèi)容。但對(duì)于 等單個(gè)標(biāo)簽,它所對(duì)應(yīng)的 Image 對(duì)象沒有 innerHTML 屬性。
另外,DOM 對(duì)象還提供有方法,可以在程序中調(diào)用。
實(shí)際上,DOM 對(duì)象不是 JavaScript 特有的對(duì)象,它是一種跨平臺(tái)的對(duì)象,有很多語言都提供了對(duì) DOM 對(duì)象的訪問支持。JavaScript 只是其中之一。
對(duì)象的獲取
用 JavaScript 設(shè)置或修改一個(gè) HTML 標(biāo)簽的屬性時(shí),首先要做的是獲取這個(gè)標(biāo)簽所對(duì)應(yīng)的 DOM 對(duì)象。常用的方法有:
1、用 id 獲取 DOM 對(duì)象:
如果一個(gè)標(biāo)簽設(shè)置了 id 屬性,我們可以利用 id 值訪問這個(gè)標(biāo)簽,它的 JavaScript 代碼代碼為:
document.getElementById( id )
document 是一個(gè) BOM 對(duì)象,它代表了當(dāng)前的 HTML 文檔;getElementById 是 Document 對(duì)象的一個(gè)方法;id 是網(wǎng)頁中某個(gè) HTML 標(biāo)簽的 id 屬性值。
document.getElementById( id ) 的返回值是一個(gè)對(duì)象型數(shù)據(jù),也就是一個(gè) DOM 對(duì)象。
2、用 name 獲取 DOM 對(duì)象:
如果一個(gè)標(biāo)簽設(shè)置了 name 屬性,我們可以利用 name 值訪問這個(gè)標(biāo)簽,它的 JavaScript 代碼代碼為:
document.getElementsByName( name )
說明:在一個(gè)網(wǎng)頁中,如果為標(biāo)簽設(shè)置 id 屬性,則各個(gè)標(biāo)簽的 id 屬性值不能相同,如果為標(biāo)簽設(shè)置 name 屬性,則一個(gè)網(wǎng)頁中可以有多個(gè) name 屬性值相同的標(biāo)簽。
所以 document.getElementsByName( name ) 的返回值不是單一的對(duì)象,而是一個(gè) DOM 對(duì)象數(shù)組,它包含了本頁中所有 name 值相同的那些標(biāo)簽。
3、用標(biāo)簽名獲取 DOM 對(duì)象:
我們可以直接用標(biāo)簽名訪問指定標(biāo)簽,它的JavaScript代碼代碼為:
document.getElementsByTagName( tagname )
說明:由于在一個(gè)網(wǎng)頁中,同一種標(biāo)簽可以出現(xiàn)多次,所以 document.getElementsByTagName( tagname ) 的返回值也是一個(gè) DOM 對(duì)象數(shù)組,它包含了本頁中指定種類的所有標(biāo)簽。