摘要:在低于瀏覽器中,也返回匹配屬性的元素。例如通過匹配元素的的值來獲取元素。結(jié)果返回對象其實很類似于的選擇元素的方法,而也是解決獲取頁面元素的終極方法。
1: 獲取文檔元素的方法有7個
1: getElementById(id) [通過id獲取] 2: getElementsByName(name) [通過元素的name屬性獲取] 3: getElementsByTagName(tagName) [通過Tag名字獲取] 4: getElementsByTagNameNS(nameSpace, tagName) [通過值得namSpace下的Tag名字獲取] 5: getElementsByClassName(className)[通過元素CSS類名字獲取] 6: querySelectorAll(cssQuery) [通過匹配CSS選擇器獲取匹配的所有元素] 7: querySelector(cssQuery)[通過匹配CSS選擇器獲取匹配的第一個元素]
其中:
1: 在方法名上,除了ById是單數(shù)的"Element", 其他都是復(fù)數(shù)的"Elements" 2: 返回HTMLElement類型的有: getElementById() querySelector() 3: 其余都是返回NodeList或者HTMLCollection 4: 同時定義在Document和Element上的方法有: getElementsByClassName() getElementsByTagName() getElementsByTagNameNS() querySelectorAll() querySelector()
先來對以上幾點進行點直觀的感受,假如我們的HTML代碼是這樣的:
item list
1: 返回HTMLElement的nodeList的區(qū)別
2: 同時定義在Document和Element上的方法區(qū)別
bookItem是在Element元素(bookList[0])上使用getElementsByTagName()得到的結(jié)果,而allLi是在document上使用getElementsByTagName()得到的結(jié)果。可以看出在某個HTMLElement元素上使用獲取dom元素的話,結(jié)果只會返回此元素的后代節(jié)點里滿足查詢條件的節(jié)點,而document上使用,會返回整個文檔里面的滿足查詢條件的全部節(jié)點。
接下來對以上6個方法進行具體的講解:
1: getElementById(id)
var pageTitle = document.getElementById("pageTitle");
沒什么好說的,傳入元素id的值,返回HTMLElement。
瀏覽器特性:
1: 在低于IE 8瀏覽器中,getElementById()對id不區(qū)分大小寫。 2: 在低于IE 8瀏覽器中,也返回匹配name屬性的元素。
2: getElementsByName(name)
var elements = document.getElementsByName("xxx");
通過元素的name屬性選取元素,返回NodeList對象,包含若干Element對象的只讀數(shù)組
特別注意:
1: getElementsByName()定義在HTMLDocument類中,而不是Document類中,所以只能在HTML文檔可以用,在XML文檔里不可以用。 2: 在IE中此方法也返回id屬性匹配的元素 3: 為某些HTML元素設(shè)置name屬性,會在Document對象上設(shè)置同名的屬性(如果此屬性名不存在)
針對以上第3點解釋一下:
在document上自動創(chuàng)建了以name的值為名字的屬性:‘logo’和‘infoForm’。如果HTML里面只有一個元素的name是這個值,那通過document的屬性去取值,返回這個HTMLElement對象;如果有多個元素的name是這個值,那就返回包含這些元素的NodeList對象。
3: getElementsByTagName(tagName)
var spanElements = document.getElementsByTagName("span");
傳入tag的名稱,遞歸地獲取匹配的元素,先看一段代碼
parent child Sibling
從返回結(jié)果的NodeList對象的元素順序來看,它會遞歸地把某個節(jié)點都查詢完,然后再去查詢它的兄弟節(jié)點。
特別注意:
1: 因為HTML不區(qū)分大小寫,所以這個方法對tag名也不區(qū)分大小寫,就是說如果查詢‘span’,同時也會匹配‘’元素
2: 如果傳入通配符"*",會獲得一個代表真哥哥文檔中元素的NodeList對象。例如:
4: getElementsByClassName(className)
var elements = document.getElementsByClassName("red");
通過匹配元素的class的值來獲取元素。參數(shù)為包含全部class值的字符串(class前面不加"."),當某個元素的class值有多個時,參數(shù)用空格隔開。
可以看到查詢結(jié)果不包含第一個
元素,因為它的class里面沒有‘bold’;結(jié)果包含第三個
元素,因為它的class包含參數(shù)里面的所有class名,即使它自己本身還多出一個別的class。所以這是一個“包含全部”而不是“完全相等“的查詢。
5: querySelectorAll(cssQuery)
var elements = document.querySelectorAll(‘.bookList li’);
參數(shù)為一個字符串,內(nèi)容為和CSS語法一樣的,css選擇器(通過".", "#"等來區(qū)分是class還是id之類的值)。結(jié)果返回NodeList對象
其實很類似于jQuery的選擇元素的方法,而querySelectorAll()也是解決獲取頁面元素的終極方法。
6: querySelector(cssSelector)
var element = document.querySelector(".red");
它的用法與querySelectorAll()相似,但是有兩個區(qū)別:
1: querySelector()只返回匹配的第一個元素 2: querySelector()返回結(jié)果為HTMLElement, 而不是一個包含一個元素的NodeList對象
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/88308.html
摘要:假如對應(yīng)的為一組對象,則返回該組對象中的第一個。方法返回帶有指定標簽名的節(jié)點對象的集合。語法說明是標簽的名稱,如等標簽名。是一個人的身份證號碼,是唯一的。注意把指定的屬性設(shè)置為指定的值。表示文檔所在窗口的當前寬度。 簡述 本系列將持續(xù)更新Javascript基礎(chǔ)部分的知識,誰都想掌握高端大氣的技術(shù),但是我覺得沒有一個扎實的基礎(chǔ),我認為一切高階技術(shù)對我來講都是過眼云煙,要成為一名及格的前...
摘要:有級級級共個級別。事件類型事件類型鼠標事件鍵盤事件事件事件處理器執(zhí)行代碼的程序在事件發(fā)生時會對事件做出響應(yīng)。在標簽中使用事件處理器的語法是標簽事件處理器代碼事件處理程序事件就是用戶或瀏覽器自身執(zhí)行的某種動作。 DOM介紹 D(文檔)可以理解為整個Web加載的網(wǎng)頁文檔,O(對象)可以理解為類似window對象只來的東西,可以調(diào)用屬性和方法,這里我們說的是document對象,M(模型)可...
摘要:對象對象的概念首先了解一下對象怎么用。對象是解析節(jié)點樹結(jié)構(gòu)的主要入口。繼承鏈關(guān)系對象是繼承于對象的,是一個用于接收事件的對象。代碼示例的標準規(guī)范中的對象和對象都是繼承于對象的。屬性對象的屬性用于獲取指定的節(jié)點名稱。參數(shù)表示要刪除的節(jié)點。 Node對象 Node對象的概念 首先了解一下Node對象怎么用。DOM的標準規(guī)范中提供了Node對象,該對象主要提供了用于解析DOM節(jié)點樹結(jié)構(gòu)的屬性...
摘要:事件處理允許對事件做出反應(yīng)。還可以用代碼為多個元素分配相同的事件。指定事件監(jiān)聽器接下來看看怎樣為元素分配事件監(jiān)聽器。 翻譯:瘋狂惡的技術(shù)宅https://medium.freecodecamp.o... 本文首發(fā)微信公眾號:jingchengyideng歡迎關(guān)注,每天都給你推送新鮮的前端技術(shù)文章 Javascript DOM(文檔對象模型)是一個允許開發(fā)人員操縱頁面內(nèi)容、結(jié)構(gòu)和風(fēng)...
摘要:訪問集合元素時使用局部變量對于任何類型的訪問,如果對同一個屬性或者方法訪問多次,最好使用一個局部變量對此成員進行緩存。 三、DOM Scripting DOM編程 我們都知道對DOM操作的代價昂貴,這往往成為網(wǎng)頁應(yīng)用中的性能瓶頸。在解決這個問題之前,我們需要先知道什么是DOM,為什么他會很慢。 DOM in the Browser World 瀏覽器中的DOM DOM是一個獨立于語言...
閱讀 1751·2021-09-23 11:34
閱讀 2472·2021-09-22 15:45
閱讀 12821·2021-09-22 15:07
閱讀 2221·2021-09-02 15:40
閱讀 4107·2021-07-29 14:48
閱讀 1071·2019-08-30 15:55
閱讀 3245·2019-08-30 15:55
閱讀 2190·2019-08-30 15:55