ノードを新たに作成する - JavaScript Ajax プログラミング

PROGRAM


ノードを新たに作成する

JavaScript の DOM (Document Object Model) では、タグやテキストといった情報をノードとして持っています。

このノードを新たに作成したい場合、たとえば DIV タグを作成したい場合には、次のようにします。

pNode = document.createElement('div');

A タグを作成する場合であれば、次のような感じでしょうか。

anchorNode = document.createElement('a');

anchorNode.setAttribute('href', 'http://xxxx/');

テキストを新たに作成したい場合には、次のようにします。

textNode = document.createTextNode('ノードに設定したいテキスト');

出来上がったノードは appendChild メソッドを使用して、あるノードの子ノードとして登録することが可能です。

anchorNode.appendChild(textNode);

pNode.appendChild(anchorNode);

たとえばこれまでの例では、次のような HTML が出来上がったことになります。

<div>

<a href="http://xxxx/">

ノードに設定したいテキスト

</a>

</div>

DIV タグを親として、その中に A タグでリンクが設定されたテキストが保持されたノードのできあがりです。

 

複数のノードを一度に扱いたい場合

createElement や createTextNode だけでは、そのタグから子へと階層を辿った 1 連のノードを作成して行く感じになります。

複数のタグを平行して一度に扱いたい場合には、次のように createDocumentFragment を利用します。

pFrame = document.createDocumentFragment();

こうしたら、たとえば次のような DIV タグを用意して、

divNode1 = document.createElement('div');

divNode2 = document.createElement('div');

 

textNode1 = document.CreateTextNode('テキスト1');

textNode2 = document.CreateTextNode('テキスト2');

 

 

divNode1.appendChild(textNode1);

divNode2.appendChild(textNode2);

これらの divNode1 と divNode2 を、次のように appendChild を使用して Document Fragment に追加します。

pFrame.appendChild(divNode1);

pFrame.appendChild(divNode2);

こうすると、全体としては次の HTML が作成されたことになります。

<div>

テキスト1

</div>

<div>

テキスト2

</div>

このように 2 つの DIV タグが並列に存在するノードの出来上がりです。

このノードを appendChild メソッドで他のノードに追加してあげれば、これら複数のタグをいちどに追加することが可能です。いくつものノードを編成して、最後に一括して文書に適用したい場合などに効率的です。

 


[ もどる ]