首頁 > web前端 > js教程 > 主體

用JavaScript實作用一個DIV來包裝文字元素節點_javascript技巧

WBOY
發布: 2016-05-16 16:36:52
原創
1307 人瀏覽過

當你的應用需要依賴某個特定的JavaScript類別庫時,你無意中總是會試圖解決某些類別庫自身的問題,而不是語言的問題。就例如當我試著將文字(可能也包含HTML元素)用一個DIV元素包起來時。假設有以下HTML:

This is some text and <a href="">a link</a>
登入後複製

這時候如果想把它轉換成下面這樣:

<div>This is some text and <a href="">a link</a><div>
登入後複製

最簡單暴力的方法是,你可以在父元素上通過 .innerHTML 屬性來執行更新,但問題是這樣一來所有綁定的事件監聽都會失效,因為使用 innerHTML 時會重新創建一個HTML元素。這真是個大玻璃杯!所以這時候只能利用JavaScript來實現 —— 尺有所短、寸有所長。下面是實作程式碼:

var newWrapper = document.createElement('div'); 
while(existingParent.firstChild) { 
// 移动DOM元素,不会创建新元素 
newWrapper.appendChild(existingParent.firstChild); 
}
登入後複製

這裡不能使用for迴圈,因為 childNodes 是一個動態節點組成的集合,只要移動節點就會影響到他的index索引值。我們用while循環一直偵測父元素的 firstChild ,如果其傳回一個代表 false 的值, 那麼你就知道所有的節點都已經移到新的parent中了!

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
最新問題
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板