DOMに於いて、当該ノードのコピーノードを生成するcloneNode()メソッドの解説です。
cloneNode()メソッドとは、当該ノードのコピーノードを生成するメソッドです。
生成されたコピーノードは、元のノードと違って文書との関係がまだ確立しておらず、従って文書が読み出し専用でない限り、文書内の任意の箇所に挿入する事が出来ます。
cloneNode()メソッドはNodeインタフェイスに依って実装されます。
従って、DOMで扱える全てのノードでcloneNode()メソッドを得る事が出来ます。
cloneNode()メソッドは以下の一つの引数を取ります。
cloneNode()メソッドの返し値は、生成されたコピーノードです。
ある要素ノード e 内に於いて、href属性値が http:// で始まる全ての<a>要素の末尾に、<img>要素ノード im を追加する例です。
im そのものを挿入しようとすると、二回目以降に前回挿入した位置から除去されてしまうため、複製したコピーノードを挿入しております。
im=document.createElement('img');im.setAttribute('src', '/image/icons/extenalSite.GIF');im.setAttribute('alt', '(※外部サイト)');im.setAttribute('width', '16');im.setAttribute('heigth', '16');var e1=e.getElementsByTagName('a');var i=e1.length;while (--i>=0) {if (e1[i].getAttribute('href').indexOf('http://')!=0) continue;e1[i].appendChild(im.cloneNode(true));}
cloneNode()メソッドで複製したノードは、複製元と同じ文書に属するノードにのみ挿入する事が可能です。
特に、Ajaxで外部から別の文書を取り込んだ場合、responseXML プロパティで得られるオブジェクトは元のHTML文書とは異なる文書となるため、単純に取得してきたXML文書の要素を元のHTML文書に附加する事やその逆の行為は出来ないと言う事になります。
Copyright ©平成21年-平成24年 さいたま・しらぎくさいと 版権所有
marguerite.site@gmail.com