DOMに於いて、当該ノードを含んでいる文書を与えるownerDocumentプロパティの解説です。
ownerDocumentプロパティとは、当該ノードを含んでいる文書ノードを与えるプロパティです。
つまり、当該要素の最上位ノードを与えます。
尚、ownerDocumentプロパティは読み出し専用です。ownerDocumentプロパティを上書きしようとしても、文書ノードは変更されず、例外が発生するだけです。
また、この事より、異なる文書間のノードをそのまま移動させる事は認められません。
ownerDocumentプロパティはNodeインタフェイスに依って実装されます。
従って、DOMで扱える全てのノードでownerDocumentプロパティを得る事が出来ます。
ownerDocumentプロパティが与える値は、当該ノードを含む文書ノードとなります。
但し、文書ノード自身の場合はnull値となります。
簡単なAjaxに収録している異なる文書間でのDOMノードの移転方法にて解説している、Ajaxで取得した文書からHTML文書内にノードを移転させたい場合の処理の例です。
function appendOthersNode(o, e) {var ow=o.ownerDocument || o;//追加先が属する文書var o1=ow.createElement(e.tagName);//新要素ノードvar i,j;// 属性。var a=e.attributes;j=a.length;while (--j>=0) {var a1=a.item(j);o1.setAttribute(a1.nodeName, a1.nodeValue);}var ele=e.childNodes;var i=-1;while (++i<ele.length) {var t=ele[i].nodeType;// 子要素は新要素に継ぎ足す。if (t==1) {appendOthersNode(o1, ele[i]); continue;}// 内容テキストの附加。if (t==3) {o1.appendChild(ow.createTextNode(ele[i].nodeValue));continue;}// 他のノードはコピー不要(?)。}o.appendChild(o1);}
Copyright ©平成21年-平成24年 さいたま・しらぎくさいと 版権所有
marguerite.site@gmail.com