
第7回 JavaScriptでHTMLをダイナミックに書き換える 後編
羽田野太巳
2008/8/4
| 旧来のDHTMLの手法では、JavaScriptから操作できるHTML要素に限りがありましたが、DOMでは、HTML上のありとあらゆる要素を自由自在に読み取ったり、書き換えることができるようになります。本連載では、主にDOM Level 1で規定されている手法を使い、JavaScriptでどのようにHTML上の要素へアクセスするのか、そして、それをどうやって書き換えるのかを詳しく解説します。これにより、JavaScriptからHTML要素を手に取るように操れるようになります。 |
前回の「JavaScriptでHTMLをダイナミックに書き換える 前編」では、タグ要素を追加するテクニックを解説しました。今回はその続きで、要素の削除、複製などの取り扱いを解説します。
| ◆今回学ぶこと |
| ・要素を削除する(removeChild) |
| ・要素を置き換える(replaceChild) |
| ・要素を複製する(cloneNode) |
| ・まとめて更新を行う(DocumentFragment) |
|
本連載は、ソフトバンククリエイティブ刊行の『標準DOMスクリプティング』のうち「第2章 DOMの基本」を、同社の許可を得て転載するものです。 本書は、DOM(Document Object Model)とJavaScriptの関係を分かりやすく解説しています。さらに、JavaScriptからDOMを介して、いかにしてHTMLやXMLの操作ができるのかを紹介しています。またこれらのことを学びながら、クロスブラウザ対策の重要性も理解できるようになると思います。 なお、 Webでの連載として転載するに当たり、若干表現を変更している点があります(例えば「本書は」としている部分は「本連載は」としていることや図版などの省略など)。その点ご了承ください。 |
■要素を削除する(removeChild)
すでにHTML内に存在している要素を削除する場合には、removeChildメソッドを使います。メソッド名を見ておわかりかと思いますが、子要素を削除するメソッドですので、先ほどのinsertBeforeメソッドと同様に削除対象の要素の親要素が必要になります。
removeChildメソッドには、削除したい要素のノードオブジェクトを引数に与えます。
removeChild.html <script type="text/javascript"> |
要素の削除は、それを参照するノードオブジェクトさえ用意できれば、とても簡単に処理できます。
(1)では、id属性値に"chapter2"がセットされたDIVタグの要素ノードオブジェクトを変数targetNodeに格納します。
(2)で、removeChildメソッドの引数にtargetNodeを与えます。親要素はtargetNode.parentNodeで代用していますが、document.getElementById('toc')でも同様の結果が得られます。
removeChildメソッドは、引数に与えた要素ノードオブジェクトを丸ごと削除します。末端のノードから順に削除する必要はありません。たとえば、サンプルのHTMLすべてを削除したい場合は、(1)を次のように書き換えるだけで実現できます。
var targetNode = document.getElementById('toc');
■要素を置き換える(replaceChild)
ある特定の要素をまったく別の要素に置き換えるには、replaceChildメソッドを使います。replaceChildメソッドは子要素を置き換えるメソッドですので、対象となる要素の親要素のノードオブジェクトが必要です。
replaceChildメソッドは2つの引数を与えます。1つ目には新たに置き換える要素ノードオブジェクトで、2つ目には対象となる要素ノードオブジェクトです。
サンプルで使い方を見ていきましょう。
replaceChild.html <script type="text/javascript"> |
このサンプルでは、
<div id="chapter3">HTML</div>
を、
<div id="appendixa">付録A</div>
にそっくり置き換えます。
(1)では、置き換えの対象となるDIVタグの要素ノードオブジェクトを、targetNodeに格納します。
(2)では、新たに置き換える要素ノードオブジェクトを生成し、newNodeに格納します。
(3)で、targetNodeをnewNodeにそっくり置き換えます。この段階で、HTMLが切り替わります。
| 要素を複製する |
| 【転職体験談】「もっと多くのユーザーに使って欲しい」⇒ mixiへの転職に成功! 8年間のSIer生活で得た経験とスキルを生かして転職活動。評価のポイントはどこ? |
| 【経営戦略】⇒「いつか勉強しよう」ではなく「いまこそ勉強すべき」スキル 50%のユーザー企業が「戦略を立案できるIT技術者」と仕事をしたがっている |
| 気になる「社会人大学院」という選択肢 仕事との両立は本当に可能? 独学とは何が違う? 実際の学生・卒業生6人に聞いた |
|
|
| 1日1問、模擬試験問題をメールで届けます | |
| ITスキル研修4000件、最新情報の検索できます |
スキルアップ/キャリアアップ(JOB@IT)
スポンサーからのお知らせ
・ケ・ュ・チマツ、クヲオ貍シ・ケ・ン・・オ。シ
- - PR -
お勧め求人情報
| ◆クライアント企業から求められる人材 ⇒IT技術と経営戦略を併せ持つ「戦略家」 New! |
||
| ◆気になる社会人大学院。興味はあるけど仕 事と両立可能?実際に通った6人に聞いた |
||
|
**先週の人気講座ランキング**
〜CCNA編〜
ITトレメ・今日の問題
基本情報技術者試験
エンドユーザーヘの障害対応窓口としてヘルプデスクを設置した。報告を受けた障害の根本的な原因は不明であるが、応急処置を必要としているとき、ヘルプデスクが対応する順番として、最も適切なものはどれか。<13年秋FE問57>







IE9、HTML5やCSS3、SVG対応を大幅強化へ