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

javascript dom操作之cloneNode文本節(jié)點克隆使用技巧

 更新時間:2009年12月27日 00:22:36   作者:  
文本克隆函數(shù)cloneNode他有兩個參數(shù)——true or false
true:完全的復(fù)制一個節(jié)點,什么叫完全呢,就是復(fù)制一切,包括他的子節(jié)點,以至于文本節(jié)點,凡是有的,一律克隆,所謂完全

false:只克隆當(dāng)前節(jié)點,不克隆任何的子節(jié)點,當(dāng)然也不會克隆他所包裹的文本,因為任何文本都有指向他的節(jié)點(文本節(jié)點)
當(dāng)然有時候兩者是可以通用的哦,如果要復(fù)制的節(jié)點沒有任何的子節(jié)點,這是二者全等;比如 img...

為了讓大家理解的更為深刻,舉個小例子吧:

復(fù)制代碼 代碼如下:

<div>
<span>Shadow</span> |No Shadow
</div>

我定義一個變量用于指向span節(jié)點

var element = document.getElementsByTagName('span')[0];
那么
復(fù)制代碼 代碼如下:

var t1 = element.cloneNode(false).innerHTML;//不復(fù)制子節(jié)點
var t2 = element.cloneNode(true).innerHTML;//copy all
alert(t1);
alert(t2);

這是會依次輸出 (空)“”和Shadow ;
復(fù)制代碼 代碼如下:

var textnode = element.firstChild;//指向文本節(jié)點
var t1 = textnode.cloneNode(false).nodeValue;
var t2 = textnode.cloneNode(true).nodeValue;
alert(t1);
alert(t2);

這是他們會同時輸出Shadow。

【cloneNode的bug】

在上面多級聯(lián)動中說到,會用cloneNode復(fù)制容器,但cloneNode在ie中有一個bug:
在ie用attachEvent給dom元素綁定事件,在cloneNode之后會把事件也復(fù)制過去。
而用addEventListener添加的事件就不會,可以在ie和ff測試下面的代碼:

[Ctrl+A 全選 注:引入外部Js需再刷新一下頁面才能執(zhí)行]

在ie和ff點擊第一個div都會觸發(fā)alert,關(guān)鍵是第二個div,在ff不會觸發(fā),而ie就會。
當(dāng)然這個是不是bug還不清楚,或許attachEvent本來就是這樣設(shè)計的也說不定。
但第一版就是由于這個bug,而沒有用cloneNode。

在找解決方法之前,再擴展這個問題,看看直接添加onclick事件會不會有同樣的bug。
首先測試在元素里面添加onclick:

[Ctrl+A 全選 注:引入外部Js需再刷新一下頁面才能執(zhí)行]

結(jié)果在ie和ff都會復(fù)制事件。

再測試在js添加onclick:

[Ctrl+A 全選 注:引入外部Js需再刷新一下頁面才能執(zhí)行]

結(jié)果在ie和ff都不會復(fù)制事件,看來只有attachEvent會引起這個bug。

下面是解決方法:
用John Resig在《精通JavaScript》推薦的Dean Edwards寫的addEvent和removeEvent方法來添加/移除事件。
它的好處就不用說了,而且它能在ie解決上面說到的cloneNode的bug。
因為它的實現(xiàn)原理是在ie用onclick來綁定事件,而上面的測試也證明用onclick綁定的事件是不會被cloneNode復(fù)制的。

相關(guān)文章

  • javascript數(shù)組中的map方法和filter方法

    javascript數(shù)組中的map方法和filter方法

    這篇文章主要介紹了javascript數(shù)組中的map方法和filter方法,文章內(nèi)容介紹詳細,具有一定的參考價值,需要的小伙伴可以參考一下,希望對你的學(xué)習(xí)有所幫助
    2022-03-03
  • 基于JS快速實現(xiàn)導(dǎo)航下拉菜單動畫效果附源碼下載

    基于JS快速實現(xiàn)導(dǎo)航下拉菜單動畫效果附源碼下載

    這是一個帶變形動畫特效的下拉導(dǎo)航菜單特效。該導(dǎo)航菜單在菜單項之間切換時,下拉菜單會快速的根據(jù)菜單內(nèi)容的大小來動態(tài)變形,顯示合適的下拉菜單大小,效果非常棒,對導(dǎo)航下拉菜單效果感興趣的朋友一起通過本文學(xué)習(xí)吧
    2016-10-10
  • js實現(xiàn)網(wǎng)頁右上角滑出會自動消失大幅廣告的方法

    js實現(xiàn)網(wǎng)頁右上角滑出會自動消失大幅廣告的方法

    這篇文章主要介紹了js實現(xiàn)網(wǎng)頁右上角滑出會自動消失大幅廣告的方法,是javascript廣告特效的典型應(yīng)用,非常具有實用價值,需要的朋友可以參考下
    2015-02-02
  • JS?ES5創(chuàng)建常量詳解

    JS?ES5創(chuàng)建常量詳解

    這篇文章主要介紹了JS?ES5創(chuàng)建常量詳解,文章圍繞主題展開詳細的內(nèi)容介紹,具有一定的參考價值,感興趣的小伙伴可以參考一下
    2022-07-07
  • 用方法封裝javascript的new操作符(一)

    用方法封裝javascript的new操作符(一)

    雖然js是基于對象的,但在很多時候會使用到new這個操作符。
    2010-12-12
  • H5+css3+js搭建帶驗證碼的登錄頁面

    H5+css3+js搭建帶驗證碼的登錄頁面

    這篇文章主要為大家詳細介紹了H5+css3+js搭建帶驗證碼的登錄頁面,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-10-10
  • JS實現(xiàn)圖片切換效果

    JS實現(xiàn)圖片切換效果

    這篇文章主要為大家詳細介紹了基于JavaScript實現(xiàn)圖片切換效果 ,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-11-11
  • JS實現(xiàn)文字向下滾動完整實例

    JS實現(xiàn)文字向下滾動完整實例

    這篇文章主要介紹了JS實現(xiàn)文字向下滾動的方法,以一個完整實例形式詳細分析了html頁面布局、css樣式及對應(yīng)的js滾動功能實現(xiàn)技巧,需要的朋友可以參考下
    2015-02-02
  • layui 富文本編輯器和textarea值的相互傳遞方法

    layui 富文本編輯器和textarea值的相互傳遞方法

    今天小編就為大家分享一篇layui 富文本編輯器和textarea值的相互傳遞方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-09-09
  • uniapp實現(xiàn)上拉加載更多功能的全過程

    uniapp實現(xiàn)上拉加載更多功能的全過程

    我們在項目中經(jīng)常使用到上拉加載更多,下面這篇文章主要給大家介紹了關(guān)于uniapp實現(xiàn)上拉加載更多功能的相關(guān)資料,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下
    2022-10-10

最新評論

旬邑县| 台东县| 荃湾区| 安吉县| 呈贡县| 呈贡县| 金寨县| 武宁县| 洪雅县| 彭阳县| 黄陵县| 龙陵县| 武陟县| 定南县| 都安| 伊宁县| 秭归县| 秭归县| 申扎县| 阳东县| 吐鲁番市| 泽普县| 都昌县| 洞头县| 柞水县| 铜鼓县| 平原县| 丹棱县| 彭泽县| 新巴尔虎右旗| 牟定县| 元江| 积石山| 蒲江县| 洛川县| 诸城市| 确山县| 台前县| 家居| 大理市| 普宁市|