您好,登錄后才能下訂單哦!
這篇文章主要介紹“JavaScript如何獲取HTML的DOM節點”的相關知識,小編通過實際案例向大家展示操作過程,操作方法簡單快捷,實用性強,希望這篇“JavaScript如何獲取HTML的DOM節點”文章能幫助大家解決問題。
1. 通過頂層document節點獲取
◆document.getElementById(elementId) :該要領 通過節點的ID,可以準確獲得須要 的元素,是比較基本快捷的要領 。如果頁面上含有多個相同id的節點,那么只返回***個節點。
如今,已經出現了如prototype、Mootools等多個JavaScript庫,它們提供了更簡便的要領 :$(id),參數仍然是節點的id。這個要領 可以看作是document.getElementById()的另外一種寫法,不過$()的功能更為強大,具體用法可以參考它們各自的API文檔。
◆document.getElementsByName(elementName) :該要領 是通過節點的name獲取節點,從名字可以看出,這個要領返回的不是一個節點元素,而是具有同樣名稱的節點數組。然后,我們可以通過要獲取節點的某個屬性來循環判斷能不能為須要的節點。
例如:在HTML中checkbox和radio都是通過相同的name屬性值,來標識一個組內的元素。如果我們現在要獲取被選中的元素,首先獲取改組元素,然后循環判斷是節點的checked屬性值能不能 為true即可。
◆document.getElementsByTagName(tagName) :該要領 是通過節點的Tag獲取節點,同樣該要領 也是返回一個數組,例如:document.getElementsByTagName('A')將會返回頁面上所有超鏈接節點。在獲取節點之前,一般都是知道節點的類型的,所以運用該要領比較基本。
但是缺點也是顯而易見,那就是返回的數組可能十分龐大,這樣就會浪費很多時間。那么,這個要領是不是就沒有用處了呢?當然不是,這個要領和上面的兩個不同,它不是document節點的專有要領 ,還可以運用 其他的節點,下面將會提到。
2、通過父節點獲取
◆parentObj.firstChild :如果節點為已知節點(parentObj)的***個子節點就可以運用 這個要領 。這個屬性是可以遞歸運用的,也就是支持parentObj.firstChild.firstChild.firstChild...的形式,如此就可以獲得更深層次的節點。
◆parentObj.lastChild :很顯然,這個屬性是獲取已知節點(parentObj)的***一個子節點。與firstChild一樣,它也可以遞歸運用。在運用中,如果我們把二者結合起來,那么將會達到更加令人興奮的效果,即:parentObj.firstChild.lastChild.lastChild。
◆parentObj.childNodes :獲取已知節點的子節點數組,然后可以通過循環或者索引找到須要的節點。留心:經測試發覺,在IE7上獲取的是直接子節點的數組,而在Firefox2.0.0.11上獲取的是所有子節點即包括子節點的子節點。
◆parentObj.children :獲取已知節點的直接子節點數組。留心:經測試,在IE7上,和childNodes效果一樣,而Firefox2.0.0.11不支持。這也是為什么我要運用和其他要領不同樣式的原由,因此不建議運用。
◆parentObj.getElementsByTagName(tagName) :運用要領不再贅述,它返回已知節點的所有子節點中類型為指定值的子節點數組。例如:parentObj.getElementsByTagName('A')返回已知的子節點中的所有超鏈接。
3、通過臨近節點獲取
◆neighbourNode.previousSibling :獲取已知節點(neighbourNode)的前一個節點,這個屬性和前面的firstChild、lastChild一樣都似乎可以遞歸運用的。
◆neighbourNode.nextSibling :獲取已知節點(neighbourNode)的下一個節點,同樣支持遞歸。
4、通過子節點獲取
◆childNode.parentNode :獲取已知節點的父節點。
關于“JavaScript如何獲取HTML的DOM節點”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識,可以關注億速云行業資訊頻道,小編每天都會為大家更新不同的知識點。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。