最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

用JavaScript實(shí)現(xiàn)用一個(gè)DIV來包裝文本元素節(jié)點(diǎn)

 更新時(shí)間:2014年09月09日 10:51:11   投稿:whsnow  
當(dāng)我試圖將文本(可能也包含HTML元素)用一個(gè)DIV元素包起來時(shí),可以使用下面的方法,需要的朋友可以參考下

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

This is some text and <a href="">a link</a>

這時(shí)候如果想把它轉(zhuǎn)換為下面這樣:

<div>This is some text and <a href="">a link</a><div>

最簡單暴力的方法是,你可以在父元素上通過 .innerHTML 屬性來執(zhí)行更新,但問題是這樣一來所有綁定的事件監(jiān)聽都會失效,因?yàn)槭褂?innerHTML 時(shí)會重新創(chuàng)建一個(gè)HTML元素。這真是個(gè)大玻璃杯!所以這時(shí)候只能利用JavaScript來實(shí)現(xiàn) —— 尺有所短、寸有所長。下面是實(shí)現(xiàn)代碼:

var newWrapper = document.createElement('div'); 
while(existingParent.firstChild) { 
// 移動DOM元素,不會創(chuàng)建新元素 
newWrapper.appendChild(existingParent.firstChild); 
}

這里不能使用for循環(huán),因?yàn)?childNodes 是一個(gè)動態(tài)節(jié)點(diǎn)組成的集合,只要移動節(jié)點(diǎn)就會影響到他的index索引值。我們用while循環(huán)一直檢測父元素的 firstChild ,如果其返回一個(gè)代表 false 的值, 那么你就知道所有的節(jié)點(diǎn)都已經(jīng)移到新的parent中了!

相關(guān)文章

最新評論

咸宁市| 西峡县| 浑源县| 西盟| 商城县| 大同县| 抚松县| 抚州市| 成武县| 玉溪市| 鹤山市| 永川市| 沙雅县| 新晃| 汉阴县| 积石山| 旬邑县| 蒙自县| 彝良县| 西峡县| 白山市| 阜平县| 通道| 湘潭市| 五大连池市| 乌拉特前旗| 邮箱| 太白县| 宿迁市| 营山县| 嘉定区| 南溪县| 尚义县| 滨海县| 黄平县| 肥乡县| 龙游县| 开江县| 比如县| 闸北区| 邓州市|