javascript dom操作之cloneNode文本節點複製提示

來源:互聯網
上載者:User

true:完全的複製一個節點,什麼叫完全呢,就是複製一切,包括他的子節點,以至於文本節點,凡是有的,一律複製,所謂完全

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

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

複製代碼 代碼如下:<div>
<span>Shadow</span> |No Shadow
</div>

我定義一個變數用於指向span節點

var element = document.getElementsByTagName('span')[0];
那麼 複製代碼 代碼如下:var t1 = element.cloneNode(false).innerHTML;//不複製子節點
var t2 = element.cloneNode(true).innerHTML;//copy all
alert(t1);
alert(t2);

這是會依次輸出 (空)“”和Shadow ; 複製代碼 代碼如下:var textnode = element.firstChild;//指向文本節點
var t1 = textnode.cloneNode(false).nodeValue;
var t2 = textnode.cloneNode(true).nodeValue;
alert(t1);
alert(t2);

這是他們會同時輸出Shadow。

【cloneNode的bug】

在上面多級聯動中說到,會用cloneNode複製容器,但cloneNode在ie中有一個bug:
在ie用attachEvent給dom元素繫結事件,在cloneNode之後會把事件也複製過去。
而用addEventListener添加的事件就不會,可以在ie和ff測試下面的代碼: div<p>

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.