DOMに於いて、指定された要素名で新たな要素ノードを生成するcreateElement()メソッドの解説です。
createElement()メソッドとは、指定された要素名で新規に要素ノードを生成するメソッドです。
生成された要素ノードは、通常の要素ノード同様Documnetインタフェイスを実装しており、従って通常の要素ノード同様内容や属性の追加が可能になります。
但し、生成されたノードは、メソッドの実行直後時点はメモリ上に生成されただけですので、appendChild()メソッドなどで文書に含まれているノードに追加しない限りは文書に反映される事はありません。
createElement()メソッドはDocumentインタフェイスに依って実装されます。
従って、文書ノードに対してのみcreateElement()メソッドを用いる事が出来ます。
createElement()メソッドは以下の一つの引数を取ります。
createElement()メソッドの返し値は、生成された要素ノードです。
要素名に不当な文字が含まれている場合には例外が発生します。
ある要素ノード e 内に於いて、href属性値が http:// で始まる全ての<a>要素の末尾に、<img>要素ノード 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));}
createElement()メソッドで生成した要素ノードは、生成元と同じ文書に属するノードにのみ挿入出来ます。
特に、Ajaxで外部から別の文書を取り込んだ場合、responseXML プロパティで得られるオブジェクトは元のHTML文書とは異なる文書となるため、単純にHTML文書の要素として生成した要素を取得してきたXML文書に付け足したり、その逆の操作は出来ないと言う事になります。
Copyright ©平成21年-平成24年 さいたま・しらぎくさいと 版権所有
marguerite.site@gmail.com