false:只克隆當(dāng)前節(jié)點(diǎn),不克隆任何的子節(jié)點(diǎn),當(dāng)然也不會(huì)克隆他所包裹的文本,因?yàn)槿魏挝谋径加兄赶蛩墓?jié)點(diǎn)(文本節(jié) " /> 女同久久另类99精品国产,久久av一区二区,国产一区二区三区四区

中文字幕日韩一区二区_国产一区二区av_国产毛片av_久久久久国产一区_色婷婷电影_国产一区二区精品

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

true:完全的復(fù)制一個(gè)節(jié)點(diǎn),什么叫完全呢,就是復(fù)制一切,包括他的子節(jié)點(diǎn),以至于文本節(jié)點(diǎn),凡是有的,一律克隆,所謂完全

false:只克隆當(dāng)前節(jié)點(diǎn),不克隆任何的子節(jié)點(diǎn),當(dāng)然也不會(huì)克隆他所包裹的文本,因?yàn)槿魏挝谋径加兄赶蛩墓?jié)點(diǎn)(文本節(jié)點(diǎn))
當(dāng)然有時(shí)候兩者是可以通用的哦,如果要復(fù)制的節(jié)點(diǎn)沒有任何的子節(jié)點(diǎn),這是二者全等;比如 img...

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

復(fù)制代碼 代碼如下:
<div>
<span>Shadow</span> |No Shadow
</div>

我定義一個(gè)變量用于指向span節(jié)點(diǎn)

var element = document.getElementsByTagName('span')[0];
那么
復(fù)制代碼 代碼如下:
var t1 = element.cloneNode(false).innerHTML;//不復(fù)制子節(jié)點(diǎn)
var t2 = element.cloneNode(true).innerHTML;//copy all
alert(t1);
alert(t2);

這是會(huì)依次輸出 (空)“”和Shadow ;
復(fù)制代碼 代碼如下:
var textnode = element.firstChild;//指向文本節(jié)點(diǎn)
var t1 = textnode.cloneNode(false).nodeValue;
var t2 = textnode.cloneNode(true).nodeValue;
alert(t1);
alert(t2);

這是他們會(huì)同時(shí)輸出Shadow。

【cloneNode的bug】

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

[Ctrl+A 全選 注:如需引入外部Js需刷新才能執(zhí)行]
在ie和ff點(diǎn)擊第一個(gè)div都會(huì)觸發(fā)alert,關(guān)鍵是第二個(gè)div,在ff不會(huì)觸發(fā),而ie就會(huì)。
當(dāng)然這個(gè)是不是bug還不清楚,或許attachEvent本來就是這樣設(shè)計(jì)的也說不定。
但第一版就是由于這個(gè)bug,而沒有用cloneNode。

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

[Ctrl+A 全選 注:如需引入外部Js需刷新才能執(zhí)行]
結(jié)果在ie和ff都會(huì)復(fù)制事件。

再測(cè)試在js添加onclick:

[Ctrl+A 全選 注:如需引入外部Js需刷新才能執(zhí)行]
結(jié)果在ie和ff都不會(huì)復(fù)制事件,看來只有attachEvent會(huì)引起這個(gè)bug。

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

JavaScript技術(shù)javascript dom操作之cloneNode文本節(jié)點(diǎn)克隆使用技巧,轉(zhuǎn)載需保留來源!

鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請(qǐng)第一時(shí)間聯(lián)系我們修改或刪除,多謝。

主站蜘蛛池模板: 91极品欧美视频 | 丁香五月网久久综合 | 欧美精品一区二区三区四区 在线 | 日韩高清国产一区在线 | 99精品久久| 一二区视频 | 91av在线视频观看 | 日本精品一区二区三区在线观看视频 | 国产在线观看免费 | 中文字幕国产 | 国产三级一区二区 | 成年人在线视频 | 夜夜操天天操 | 999热精品 | 成人在线免费视频观看 | 伊人伊人| 成人午夜免费视频 | 久久成人免费视频 | 91久操网| 在线四虎 | 久久99精品久久久久久国产越南 | 久久久久久久久久爱 | 日韩av免费在线电影 | 日韩视频观看 | 91丨九色丨国产在线 | 欧美一区二区三区在线视频 | 久草www | 日韩高清一区二区 | 成人看片在线观看 | 亚洲人在线 | 亚洲精精品 | 天天干夜夜操视频 | 国产1区2区| 亚洲成人一二区 | 粉嫩国产精品一区二区在线观看 | 蜜桃精品视频在线 | 久久99国产精品 | 成人国产精品视频 | 亚洲成人网在线播放 | 男女精品网站 | 日本成人免费观看 |