| 533 | |
| 534 | 試しに、 DOM を用いて、既存のパラグラフ (<p> タグ) に以下の HTML に相当する内容を追加するプログラムを書いてみましょう。 |
| 535 | |
| 536 | {{{ |
| 537 | これは、<strong>DOM</strong> を用いたサンプルです。 |
| 538 | }}} |
| 539 | |
| 540 | まず、既存のパラグラフに ID 「main_paragraph」が設定されているものとして、パラグラフ要素を取得します。 |
| 541 | |
| 542 | {{{ |
| 543 | var p = document.getElementById("main_paragraph"); |
| 544 | }}} |
| 545 | |
| 546 | 次に、このパラグラフ要素に、テキスト要素「これは、」を追加します。テキスト要素ですから、 document.createTextNode() メソッドを用いて生成し、それをパラグラフ要素の appendChild() メソッドに渡して追加します。 |
| 547 | |
| 548 | {{{ |
| 549 | var text = document.createTextNode("これは、"); |
| 550 | p.appendChild(text); |
| 551 | }}} |
| 552 | |
| 553 | 生成したテキスト要素をわざわざ変数に持たせず、以下のように直接 appendChild() メソッドに渡してしまっても良いでしょう。 |
| 554 | |
| 555 | {{{ |
| 556 | p.appendChild(document.createTextNode("これは、")); |
| 557 | }}} |
| 558 | |
| 559 | 次に、新たに生成した <string> 要素にテキスト要素「DOM」を生成して追加し、それをパラグラフ要素に追加します。言葉で書くとややこしいですが、プログラムにして書くとかえって分かりやすいかも知れません。 |
| 560 | |
| 561 | {{{ |
| 562 | var strong = document.createElement("strong"); // <strong> 要素を生成 |
| 563 | strong.appendChild(document.createTextNode("DOM")); // テキスト要素「DOM」を生成して <strong> 要素に追加 |
| 564 | p.appendChild(strong); // <strong> 要素をパラグラフ要素に追加 |
| 565 | }}} |
| 566 | |
| 567 | 最後に、残りのテキスト要素「 を用いたサンプルです。」を生成し、パラグラフ要素に追加すれば完了です。 |
| 568 | |
| 569 | {{{ |
| 570 | p.appendChild(document.createTextNode(" を用いたサンプルです。")); |
| 571 | }}} |
| 572 | |
| 573 | 完成したプログラムを見てみましょう。ボタンをクリックするとこのプログラムが動作するように作られています。 |
| 574 | |
| 575 | {{{ |
| 576 | <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"> |
| 577 | <html> |
| 578 | |
| 579 | <head> |
| 580 | <meta http-equiv="content-type" content="text/html; charset=UTF-8"> |
| 581 | <meta http-equiv="content-script-type" content="text/javascript"> |
| 582 | <title>small DOM sample</title> |
| 583 | <script type="text/javascript" language="JavaScript"><!-- |
| 584 | function domTest() { |
| 585 | var p = document.getElementById("main_paragraph"); |
| 586 | p.appendChild(document.createTextNode("これは、")); |
| 587 | var strong = document.createElement("strong"); // <strong> 要素を生成 |
| 588 | strong.appendChild(document.createTextNode("DOM")); // テキスト要素「DOM」を生成して <strong> 要素に追加 |
| 589 | p.appendChild(strong); // <strong> 要素をパラグラフ要素に追加 |
| 590 | p.appendChild(document.createTextNode(" を用いたサンプルです。")); |
| 591 | } |
| 592 | //--></script> |
| 593 | </head> |
| 594 | |
| 595 | <body> |
| 596 | |
| 597 | <form> |
| 598 | <input type="button" value="click!" onclick="domTest();"> |
| 599 | </form> |
| 600 | |
| 601 | <p id="main_paragraph"></p> |
| 602 | |
| 603 | </body> |
| 604 | |
| 605 | </html> |
| 606 | }}} |