【筆記】js parentsNode,lastChild,appendChild,insertBefore,nextSibling的意義及運用

來源:互聯網
上載者:User

標籤:

 這幾天看書看到這幾個屬性做幾個筆記

parentNode:顧名思義,就是擷取某元素的父元素等同於jq的parent().

 

lastChild:擷取最後一個子項目.

 

appendChild:在某元素內最後面添加一個子項目.

 

insertBefore:在某元素外的 前面添加一個元素. 此函數有兩個參數insertBefore(newelem,targetelem),newelem是要插入的元素,targetelem是與newelem相對的

元素,調用此方法必須用 targetelem的父元素調用 即targetelem.parentNode

 

nextSibling:擷取某元素的下一個兄弟元素.

 

關於添加元素這裡就有一個疑問了 既然有insertBefore 那麼肯定有insertAfter 吧?但畢竟這是js 並不是jq 所以一切並沒有那麼完美

所以既然沒有我們就造出來唄!

 

先上一個js 代碼

function insertAfter(newelem,targetelem){   var parent = targetelem.parentNode;//擷取目標元素的父元素   if (parent.lastChild == targetelem) {        parent.appendChild(newelem);   } else {        parent.insertBefore(newelem,targetelem.nextSibling);   }}

 

代碼是怎麼一回事呢分析一下

首先這個方法有兩個參數 newelem 和 targetelem

newelem 是你想插入的元素 而 targetelem 是你插入新元素的對照物

這個方法的意義就在於 你要把newelem插入到targetelem的後面,但是要實現還談何容易所以還要寫一下的判斷:

1.擷取targetelem 的父元素 (用到了parentNode 方法)並且儲存在變數parent 裡面

 

2.對父元素進行判斷,如果targetelem是它的父元素的最後一個子項目 那麼它的父元素直接調用 appendChild 方法 將newelem插入到最後

 

3.如果不是的話 parent調用insertBefore 將 newelem 插入到 targetelem 的下一級同輩元素的前面

 

大功告成~~

 

【筆記】js parentsNode,lastChild,appendChild,insertBefore,nextSibling的意義及運用

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.