createElementの使い方

2007.03.16 Author: たわばがに


ということで、JavaScriptネタです。
とりあえず簡単なネタとして、今回はcreateElementについて取り上げてみようと思います。

名前から推測できると思いますが、その名前の通り、エレメント(オブジェクト)を生成します。
ここでのエレメントというのは、HTMLのタグのことです。
spanやらdivやらimgやら、色々作れます。
createElementで作ったエレメント(オブジェクト)に 対しては、
setAttributeで要素を追加したり、style.cssTextでスタイルの設定をしたりすることができます。
これらの追加要素はappendChildで適用(表示を反映)することができます。
逆にremoveChildで消すことも可能です。

これを用いることで、HTMLとJavaScriptで操作する要素を完全に切り分けることができます。
WEBデザイナさんからシステム用に加えておいたタグに関して、
「え~、このタグいるんですか? 表示に関係ないので、いらないと思って消しちゃいました~」
とか言われて顔を青くする、というようなことが減るかもしれません(笑)

で、サンプルとしてはこんなの↓。

この文字列をクリックすると、下に文字列が出るよ
この文字列をクリックすると、下に画像が出るよ



以下、ソース。
/**
 * spanエレメント(オブジェクト)追加
 */
function displayString_createElement() {
    var o = document.createElement("span");
    o.setAttribute("id", "js_koneta_01-01");
    o.innerHTML     = "JavaScript万歳!";
    o.style.cssText = "font-weight: bold;"
                          + "font-size: 12pt"
                          + "color: #00ff00";
    document.getElementById("js_koneta_01").appendChild(o);
}

/**
 * imgエレメント(オブジェクト)追加
 */
function displayImage_createElement() {
    var o = document.createElement("img");
    o.setAttribute("id", "js_koneta_01-01");
    o.setAttribute("src", "images/js/analysis_back.jpg");
    document.getElementById("js_koneta_01").appendChild(o);
}

/**
 * エレメント(オブジェクト)消去
 */
function deleteElement_createElement() {
    o = document.getElementById("js_koneta_01-01");
    document.getElementById("js_koneta_01").removeChild(o);
}
サンプルでは書いていませんが、
document.body.appendChild(object);
というような、body自体を指定することも可能です。
ブラウザ内に絶対座標でオブジェクトを表示する場合などは、
こちらの方が使い勝手がいいかもしれません。

簡単ですが、こんなところで。