文本节点克隆cloneNode知多少

文本克隆函数cloneNode他有两个参数——true or false

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。



你可能感兴趣的:(clone)