欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

javascript dom遍歷

李佳璐1年前7瀏覽0評論

Javascript DOM遍歷

在編寫前端頁面的時候,我們時常需要遍歷頁面上的DOM元素。Javascript為我們提供了一些方便的方法來實(shí)現(xiàn)DOM遍歷。本文將介紹Javascript DOM遍歷的相關(guān)知識及其使用方法。

一、childNodes和children屬性

//獲取父元素的所有子節(jié)點(diǎn)
var parent = document.getElementById("parent");
var childNodes = parent.childNodes;
//獲取父元素的所有子元素節(jié)點(diǎn)
var children = parent.children;

childNodes是一個只讀屬性,返回一個包含所有子節(jié)點(diǎn)的實(shí)時-live、非靜態(tài)-NodeList。children是一個只讀屬性,返回一個包含元素的所有子元素的HTMLCollection,只包括元素節(jié)點(diǎn)。

二、parentNode、nextSibling和previousSibling屬性

//獲取當(dāng)前元素的父元素
var parent = currentElement.parentNode;
//獲取當(dāng)前元素的下一個兄弟元素
var nextSibling = currentElement.nextSibling;
//獲取當(dāng)前元素的上一個兄弟元素
var previousSibling = currentElement.previousSibling;

parentNode是一個只讀屬性,返回當(dāng)前元素的父元素。nextSibling和previousSibling是只讀屬性,分別返回當(dāng)前元素的下一個兄弟元素和上一個兄弟元素。

三、firstChild和lastChild屬性

//獲取父元素的第一個子節(jié)點(diǎn)
var firstChild = parentElement.firstChild;
//獲取父元素的最后一個子節(jié)點(diǎn)
var lastChild = parentElement.lastChild;

firstChild和lastChild是只讀屬性,分別返回父元素的第一個子節(jié)點(diǎn)和最后一個子節(jié)點(diǎn)。

四、querySelectorAll

//獲取頁面上所有div元素
var divs = document.querySelectorAll("div");
//獲取指定父元素下的所有子元素
var children = parentElement.querySelectorAll("*");

querySelectorAll方法返回文檔中與指定的選擇器組或選擇器匹配的所有元素列表。它返回一個靜態(tài)的NodeList。

五、遍歷DOM樹

function traverse(node) {
if(node.nodeType === Node.ELEMENT_NODE) {
console.log(node.tagName);
}
node = node.firstChild;
while(node) {
traverse(node);
node = node.nextSibling;
}
}
//遍歷整個document樹
traverse(document);

可以使用遞歸函數(shù)來遍歷整個DOM樹。在上面的示例中,遍歷DOM樹時,首先判斷節(jié)點(diǎn)是否為元素節(jié)點(diǎn),然后遍歷其子節(jié)點(diǎn)。

總結(jié):

Javascript提供了多種方法來遍歷DOM元素,我們需要根據(jù)自己的需求選擇。同時,應(yīng)該注意:childNodes、nextSibling、parentNode、querySelectorAll等方法獲取到的元素集合,都是只讀實(shí)時的。而firstChild、lastChild等方法返回的節(jié)點(diǎn),是非實(shí)時的。另外,我們可以通過遞歸遍歷DOM樹來解決需要遍歷整個樹的情況。

上一篇php m()
下一篇PHP mvc