Javascript TIPS No.15 HTMLタグ(要素)を動的に生成する「createElement」
- Javascriptを使って、HTMLタグ(要素)を動的に生成する方法を紹介します
- id:cho45様の助言の元、やっと理解(?)できました
サンプルコード
<html lang="ja-JP"> <head><title>HTMLタグの動的生成</title> <script type="text/javascript"> function CreateImg(){ var objImg = document.createElement('img'); objImg.src = "http://d.hatena.ne.jp/images/diary/w/warusanta/warusanta_p.gif"; var objBody = document.getElementsByTagName("body").item(0); objBody.appendChild(objImg); } </script> </head> <body> <input type="button" value="イメージタグの動的生成" onclick="CreateImg();"> </body> </html>
解説
- ボタンがクリックされた時、BODY内にIMGタグを動的に生成するプログラムです
処理1(img要素生成)
- イメージ要素を生成し、変数(objImg)に格納
- 要素は
var objImg = document.createElement('img');
処理2(属性の書き換え)
- イメージ要素のsrc属性を書き換えます
- 書き換えると言っても、何も設定されていないので「追加する」の方がイメージしやすいかもしれません
- オブジェクト(objImg)のsrcに画像のURLを格納する
objImg.src = "http://d.hatena.ne.jp/images/diary/w/warusanta/warusanta_p.gif";
処理3(body要素を取得)
- body全体を取得します
- 最後の「item(0)」の部分は、0番目の要素という意味です
- 通常、body要素は一つしか無いので、数字を変えるとエラーになります
var objBody = document.getElementsByTagName("body").item(0);
処理4(要素の追加)
- body要素にimg要素を追加します
- appendChildは末尾に追加するメソッドです
objBody.appendChild(objImg);