欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

一文了解JavaScript用Element?Traversal新屬性遍歷子元素

 更新時(shí)間:2022年01月24日 13:14:02   作者:快樂編程  
這篇文章主要介紹了一文了解JavaScript用Element?Traversal新屬性遍歷子元素,文章圍繞Element?Traversal新屬性的相關(guān)資料展開詳細(xì)內(nèi)容,需要的朋友可以參考一下,希望對(duì)大家有所幫助

之前遍歷子元素可以用childNodes屬性或者firstChild進(jìn)行遍歷,但是要判斷子元素是否是ELement元素。

后來W3C通過Element Traversal規(guī)定定義了一組新的屬性來進(jìn)行遍歷,就不用判斷了,非常方便。

1、childNodes屬性遍歷

遍歷子元素通常是通過childNodes屬性進(jìn)行遍歷,但是這個(gè)屬性會(huì)包含空白節(jié)點(diǎn),如果只是要遍歷Element元素就特別不方便。

請(qǐng)看如下代碼示例:

<div class="article">

    <p>段落一</p>

    <p>段落二</p>

    <p>段落三</p>

</div>

 

<script type="text/javascript">

    let childList = document.querySelector(".article").childNodes;

    console.log(childList);

    // 控制臺(tái)輸出:

    //    NodeList(7) 1

</script>

控制臺(tái)查看效果:

遍歷子元素空白節(jié)點(diǎn):

獲取到的子元素包含了空白的text節(jié)點(diǎn),這些節(jié)點(diǎn)就是一些換行、縮進(jìn)、空格等。

如果要遍歷 childList 中p元素,實(shí)務(wù)中也經(jīng)常是這樣,

那么需要判斷子元素為Element類型:

let childList = document.querySelector(".article").childNodes;

// 遍歷子元素

childList.forEach((item, index) => {

    if (item.nodeType == 1) { // 判斷是Element類型

        console.log(item);

    }

});

 

// 控制臺(tái)輸出:

//    3個(gè)p元素

2、Element系列屬性遍歷

Element Traversal為DOM元素添加了5個(gè)屬性:

  • 1. childElementCount 子元素的個(gè)數(shù)(nodeType=1)。
  • 2. firstElementChilde 指向第一個(gè)Element類型的子元素。
  • 3. lastElementChilde 指向最后一個(gè)Element類型的子元素。
  • 4. previousElementSibling 指向上一個(gè)同胞Element類型的元素。
  • 5. nextElementSibling 指向下一個(gè)同胞Element類型的元素。

通過這些新屬性,遍歷Element元素起來就方便多了,

還是以上面為例:

// 獲取第一個(gè)元素

let currentElement = document.querySelector(".article").firstElementChild;

// 遍歷子元素

while (currentElement) {

    console.log(currentElement);

    // 獲取下一個(gè)元素

    currentElement = currentElement.nextElementSibling;

}

這樣處理起來就更加簡(jiǎn)潔了。

目前IE9及以上版本,以及所有現(xiàn)代瀏覽器都支持這些屬性。

到此這篇關(guān)于一文了解JavaScriptElement Traversal新屬性遍歷子元素的文章就介紹到這了,更多相關(guān) 淺談JavaScriptElement Traversal新屬性遍歷子元素內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 微信小程序 Audio API詳解及實(shí)例代碼

    微信小程序 Audio API詳解及實(shí)例代碼

    這篇文章主要介紹了 微信小程序 Audio API詳解及實(shí)例代碼的相關(guān)資料,需要的朋友可以參考下
    2016-09-09
  • JavaScript組合繼承詳解

    JavaScript組合繼承詳解

    這篇文章主要介紹了JavaScript組合繼承,下面文章將圍繞了JavaScript組合繼承的相關(guān)資料展開詳細(xì)內(nèi)容,需要的小伙伴可以參考一下,希望對(duì)你有所幫助
    2021-11-11
  • 微信小程序頁面?zhèn)髦祵?shí)例分析

    微信小程序頁面?zhèn)髦祵?shí)例分析

    這篇文章主要介紹了微信小程序頁面?zhèn)髦祵?shí)例分析的相關(guān)資料,需要的朋友可以參考下
    2017-04-04
  • JS前端錯(cuò)誤監(jiān)控捕獲以及上報(bào)方法詳解

    JS前端錯(cuò)誤監(jiān)控捕獲以及上報(bào)方法詳解

    這篇文章主要為大家介紹了前端錯(cuò)誤監(jiān)控捕獲以及上報(bào)方法詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-01-01
  • 17個(gè)JavaScript?單行程序

    17個(gè)JavaScript?單行程序

    這篇文章主要介紹了17個(gè)JavaScript?單行程序?,在?JavaScript?代碼的世界里,在保證代碼易讀性的前提下更少等于更好,下面文章將為大家分享17?個(gè)?JavaScript?單行程序代碼,希望能幫助到大家
    2021-12-12
  • mitt tiny-emitter發(fā)布訂閱應(yīng)用場(chǎng)景源碼解析

    mitt tiny-emitter發(fā)布訂閱應(yīng)用場(chǎng)景源碼解析

    這篇文章主要為大家介紹了mitt tiny-emitter發(fā)布訂閱應(yīng)用場(chǎng)景源碼解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-12-12
  • Babel?插件開發(fā)&訪問節(jié)點(diǎn)實(shí)例詳解

    Babel?插件開發(fā)&訪問節(jié)點(diǎn)實(shí)例詳解

    這篇文章主要為答案及介紹了Babel?插件開發(fā)&訪問節(jié)點(diǎn)實(shí)例詳解,整理一下?Babel?插件開發(fā)時(shí)用得到的轉(zhuǎn)換操作相關(guān)的?API,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-08-08
  • js?交互在Flutter?中使用?webview_flutter

    js?交互在Flutter?中使用?webview_flutter

    這篇文章主要為大家介紹了js?交互在Flutter?中使用?webview_flutter示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-02-02
  • 微信小程序 表單Form實(shí)例詳解(附源碼)

    微信小程序 表單Form實(shí)例詳解(附源碼)

    這篇文章主要介紹了微信小程序 表單Form實(shí)例詳解的相關(guān)資料,這里對(duì)form 表單進(jìn)行了詳細(xì)介紹,并附實(shí)例代碼,需要的朋友可以參考下
    2016-12-12
  • 淺談 JavaScript 沙箱Sandbox

    淺談 JavaScript 沙箱Sandbox

    在計(jì)算機(jī)安全中,沙箱(Sandbox)是一種用于隔離正在運(yùn)行程序的安全機(jī)制,通常用于執(zhí)行未經(jīng)測(cè)試或不受信任的程序或代碼,它會(huì) 為待執(zhí)行的程序創(chuàng)建一個(gè)獨(dú)立的執(zhí)行環(huán)境,內(nèi)部程序的執(zhí)行不會(huì)影響到外部程序的運(yùn)行,下文我們來介紹一個(gè)“瀏覽器世界”的沙箱
    2021-10-10

最新評(píng)論