Javascript DOM的簡(jiǎn)介,節(jié)點(diǎn)和獲取元素詳解
DOM
文檔:DOM中的“D”,當(dāng)創(chuàng)建一個(gè)網(wǎng)頁(yè)并把它加載到Web瀏覽器中時(shí),它把編寫(xiě)的網(wǎng)頁(yè)文檔轉(zhuǎn)換為一個(gè)文檔對(duì)象。
對(duì)象:DOM中的“O”,對(duì)象是一種自給自足的數(shù)據(jù)集合。與某個(gè)特定對(duì)象相關(guān)聯(lián)的變量被稱(chēng)為這個(gè)對(duì)象的屬性,只能通過(guò)某個(gè)特定對(duì)象去調(diào)用的函數(shù)被稱(chēng)為這個(gè)對(duì)象的方法
模型:DOM中的“M”,它是某種事物的表現(xiàn)形式。DOM把一份文檔表示為一顆家譜樹(shù)。
節(jié)點(diǎn)
節(jié)點(diǎn):文檔是由節(jié)點(diǎn)構(gòu)成,節(jié)點(diǎn)是文檔樹(shù)上的樹(shù)枝和樹(shù)葉。
DOM中有許多不同類(lèi)型的節(jié)點(diǎn),如元素節(jié)點(diǎn),文本節(jié)點(diǎn)和屬性節(jié)點(diǎn)。
元素節(jié)點(diǎn):
標(biāo)簽的名字就是元素的名字。文本段落元素的名字是“p” ,無(wú)序清單元素的名字是“u1”,列表項(xiàng)元素的名字是“1i”。
元素可以包含其他的元素。在我們的“購(gòu)物清單”文檔里,所有的列表項(xiàng)元素都包含在-一個(gè)無(wú)序清單元素的內(nèi)部。事實(shí)上,沒(méi)有被包含在其他元素里的唯一元素是元素, 它是我們的節(jié)點(diǎn)樹(shù)的根元素。
文本節(jié)點(diǎn):
元素節(jié)點(diǎn)只是節(jié)點(diǎn)類(lèi)型的種。如果一份文檔完全由一 些空白元素構(gòu)成,它將有一個(gè)結(jié)構(gòu),但這份文檔本身將不會(huì)包含什么內(nèi)容。在內(nèi)容為王的互聯(lián)網(wǎng)上,絕大多數(shù)內(nèi)容都是由文本提供的。如<p>元素包含著的文本是一 個(gè)文本節(jié)點(diǎn)(text node)。
在XHTML文檔里,文本節(jié)點(diǎn)總是被包含在元素節(jié)點(diǎn)的內(nèi)部。但并非所有的元素節(jié)點(diǎn)都包含文本節(jié)點(diǎn)。
屬性節(jié)點(diǎn):
屬性節(jié)點(diǎn)用來(lái)對(duì)元素做出更具體的描述。如幾乎所有的元素都有一個(gè)title屬性,我們可以利用這個(gè)屬性對(duì)包含在元素里的東西做出準(zhǔn)確的描述,屬性節(jié)點(diǎn)總是包含在元素節(jié)點(diǎn)中。
獲取元素
有三種DOM方法可以獲取元素節(jié)點(diǎn),分別通過(guò)元素ID,標(biāo)簽名字和類(lèi)名字來(lái)獲取。
getElementById()
DOM提供了一個(gè)名為getElementById的方法,這個(gè)方法將返回一個(gè)與那個(gè)有著給定id屬性值的元素節(jié)點(diǎn)對(duì)應(yīng)的對(duì)象,他說(shuō)document對(duì)象特有的函數(shù),函數(shù)名的后面必須跟有一對(duì)圓括號(hào),這個(gè)圓括號(hào)包含著函數(shù)的參數(shù)。getElementById方法只有一個(gè)參數(shù),你想獲取的那個(gè)元素的id屬性的值必須放在單引號(hào)或雙引號(hào)里document. getElementById(id)
。文檔中的每一個(gè)元素都是一個(gè)對(duì)象。DOM提供的方法能得到任何一個(gè)對(duì)象。例如:
document. getElementById(“purchases”)`
getElementsByTagName()
getElementsByTagName方法返回一個(gè)對(duì)象數(shù)組,每個(gè)對(duì)象分別對(duì)應(yīng)著文檔里有著給定標(biāo)簽的一個(gè)元素。這個(gè)方法也只有一個(gè)參數(shù),它的參數(shù)是標(biāo)簽的名字:element.getElementsByTagName(tag)
。
但它返回的是一個(gè)數(shù)組,它與getElementById方法有許多相似之處,如:
document. getElementsByTagName("li");
getElementsByClassName()
這個(gè)方法可以可以通過(guò)Class屬性中的類(lèi)名來(lái)訪問(wèn)元素。getElementsByClassName只接受一個(gè)參數(shù),就是類(lèi)名:
getElementsByClassName(class)
這個(gè)方法的返回值與getElementsByTagName()類(lèi)似,都是一個(gè)具有相同類(lèi)名的元素的數(shù)組。如:
document.getElementsByClassName("sale");
使用這個(gè)方法還可以查找?guī)в卸鄠€(gè)類(lèi)名的元素,只要在字符串參數(shù)中使用空格分隔類(lèi)名即可。
總結(jié):
1、一份文檔就是一顆節(jié)點(diǎn)數(shù)。
2、節(jié)點(diǎn)分為不同類(lèi)型:元素節(jié)點(diǎn)、屬性節(jié)點(diǎn)、和文本節(jié)點(diǎn)等。
3、getElementById將返回一個(gè)對(duì)象,該對(duì)象對(duì)應(yīng)著文檔里的一個(gè)特定的元素。
4、getElementsByTagName和getElementsByClassName將返回一個(gè)對(duì)象數(shù)組,它們分別對(duì)應(yīng)著文檔里的一組特定的元素節(jié)點(diǎn)。
5、每個(gè)節(jié)點(diǎn)都是一個(gè)對(duì)象。
本篇文章就到這里了,希望能夠給你帶來(lái)幫助,也希望您能夠多多關(guān)注腳本之家的更多內(nèi)容!
相關(guān)文章
js獲取form表單所有數(shù)據(jù)的簡(jiǎn)單方法
下面小編就為大家?guī)?lái)一篇js獲取form表單所有數(shù)據(jù)的簡(jiǎn)單方法。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2016-08-08js通過(guò)循環(huán)多張圖片實(shí)現(xiàn)動(dòng)畫(huà)效果
這篇文章主要為大家詳細(xì)介紹了js通過(guò)循環(huán)多張圖片實(shí)現(xiàn)動(dòng)畫(huà)效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-12-12解決layui的table插件無(wú)法多層級(jí)獲取json數(shù)據(jù)的問(wèn)題
今天小編就為大家分享一篇解決layui的table插件無(wú)法多層級(jí)獲取json數(shù)據(jù)的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-09-09JavaScript 對(duì)象深入學(xué)習(xí)總結(jié)(經(jīng)典)
JavaScript中,除了五種原始類(lèi)型(即數(shù)字,字符串,布爾值,null,undefined)之外的都是對(duì)象了,所以,不把對(duì)象學(xué)明白怎么繼續(xù)往下學(xué)習(xí)呢?本篇文章給大家分享javascript對(duì)象深入學(xué)習(xí)總結(jié),小伙伴們跟著小編一起深入學(xué)習(xí)吧2015-09-09javascript陷阱 一不小心你就中招了(字符運(yùn)算)
看似簡(jiǎn)單的加法運(yùn)行,卻有很多問(wèn)題,一定要注意字符與數(shù)字的運(yùn)算,注意使用js的強(qiáng)制類(lèi)型轉(zhuǎn)換,否則會(huì)出現(xiàn)很多問(wèn)題。我們?cè)诰帉?xiě)js的過(guò)程中,最好通過(guò)alert逐行測(cè)試2013-11-11通過(guò)身份證號(hào)得到出生日期和性別的js代碼
主要是通過(guò)判斷指定位數(shù)的數(shù)字,來(lái)判斷并加以算法實(shí)現(xiàn)男女性別的判斷。2009-11-11