最新のWeb開発のチュートリアル
×

JS チュートリアル

JS HOME JS 導入 JS どこへ JS 輸出 JS 構文 JS ステートメント JS 注釈 JS 変数 JS 演算子 JS 算術 JS 割り当て JS データの種類 JS 機能 JS オブジェクト JS 範囲 JS イベント JS ストリング JS 文字列メソッド JS 数字 JS 数のメソッド JS 数学 JS 日付 JS 日付形式 JS 日付の方法 JS 配列 JS アレイ方式 JS ブール値 JS 比較 JS 条件 JS スイッチ JS ループ For JS ループしながら JS ブレーク JS 型変換 JS 正規表現 JS エラー JS デバッギング JS 巻き上げ JS strictモード JS スタイルガイド JS ベストプラクティス JS 間違い JS パフォーマンス JS 予約語 JS JSON

JS フォーム

フォームバリデーション フォームAPI

JS オブジェクト

オブジェクト定義 オブジェクトのプロパティ オブジェクトメソッド オブジェクトプロトタイプ

JS 機能

関数定義 ファンクションのパラメータ 関数の呼び出し 関数クロージャ

JS HTML DOM

DOM イントロ DOM メソッド DOM 資料 DOM 要素 DOM HTML DOM CSS DOM アニメーション DOM イベント DOM EventListener DOM ナビゲーション DOM ノード DOM ノードリスト

JS ブラウザ BOM

JS Window JS Screen JS Location JS History JS Navigator JS Popup Alert JS Timing JS Cookies

JS

JS 例 JS HTML DOM JS HTML 入力 JS HTML オブジェクト JS HTML イベント JS ブラウザ JS クイズ JS 概要

JS リファレンスマニュアル

JavaScript オブジェクト HTML DOM オブジェクト


 

JavaScript HTML DOMナビゲーション


HTML DOMを使用すると、ノードの関係を使用してノードツリーをナビゲートすることができます。


DOMノード

W3C HTML DOM標準によれば、HTML文書内のすべてのノードは、次のとおりです。

  • 文書全体が文書ノードであります
  • すべてのHTML要素は要素ノードであります
  • HTML要素内のテキストは、テキストノードであります
  • すべてのHTML属性は属性ノードであります
  • すべてのコメントは、コメントノードであります
DOM HTMLツリー

HTML DOMでは、ノードツリー内のすべてのノードには、JavaScriptによってアクセスすることができます。

新しいノードを作成することができ、すべてのノードが変更または削除することができます。


ノードの関係

ノードツリー内のノードは、互いに階層的な関係を持っています。

用語親、子および兄弟の関係を記述するために使用されます。

  • ノードツリーで、最上位ノードはルート(またはルートノード)と呼ばれています
  • すべてのノードは(親を持たない)ルート以外は、正確に一つの親を持ちます
  • ノードは、子の数を持つことができます
  • 兄弟姉妹(兄弟姉妹)が同じ親を持つノードであります
<html>

  <head>
      <title>DOM Tutorial</title>
  </head>

  <body>
      <h1>DOM Lesson one</h1>
      <p>Hello world!</p>
  </body>

</html>
ノードツリー

あなたが読むことができる上にHTMLから:

  • <html>ルートノードであります
  • <html>親を持ちません
  • <html>の親である<head><body>
  • <head>最初の子である<html>
  • <body>での最後の子<html>

そして:

  • <head> 1子があります: <title>
  • <title> 1子(テキストノード)があります: "DOMチュートリアル」
  • <body> 2人の子供がいる: <h1><p>
  • <h1>があり1子: "DOMレッスン1」
  • <p>一人の子供を持っている: "こんにちは!"
  • <h1><p>兄弟であります

ノード間の移動

アドレスを確認するにはJavaScriptを持つノード間を移動するには、次のノードのプロパティを使用することができます。

  • parentNode
  • childNodes[ nodenumber ]
  • firstChild
  • lastChild
  • nextSibling
  • previousSibling

警告!

DOM処理における一般的なエラーは、テキストを格納するための要素ノードを期待することです。

この例では:<title> DOMチュートリアル</title> 、要素ノード<title>テキストが含まれていません。これは、値"DOMチュートリアル」を持つテキスト・ノードが含まれます

テキストノードの値は、ノードのがアクセスすることができるinnerHTML特性、またはnodeValue


Childノードとノード値

加えて、 innerHTMLプロパティ、あなたも使用できるchildNodesnodeValue要素の内容を取得するためのプロパティを。

次の例では、ノード値収集<h1>要素とにコピーし<p>要素を:

<html>
<body>

<h1 id="intro">My First Page</h1>

<p id="demo">Hello!</p>

<script>
var myText = document.getElementById("intro").childNodes[0].nodeValue;
document.getElementById("demo").innerHTML = myText;
</script>

</body>
</html>
»それを自分で試してみてください

上記の例では、 getElementById一方で、この方法でchildNodesnodeValueプロパティです。

このチュートリアルでは、使用しinnerHTMLプロパティを。 しかし、上記の方法を学ぶことは、ツリー構造とDOMのナビゲーションを理解するために有用です。

使用firstChildプロパティは、使用するのと同じであるchildNodes[0]

<html>
<body>

<h1 id="intro">My First Page</h1>

<p id="demo">Hello World!</p>

<script>
myText = document.getElementById("intro").firstChild.nodeValue;
document.getElementById("demo").innerHTML = myText;
</script>

</body>
</html>
»それを自分で試してみてください

DOMルートノード

完全ドキュメントへのアクセスを可能にする2つの特別なプロパティがあります。

  • document.body -文書の本文
  • document.documentElement -フルドキュメント

<html>
<body>

<p>Hello World!</p>
<div>
<p>The DOM is very useful!</p>
<p>This example demonstrates the <b>document.body</b> property.</p>
</div>

<script>
alert(document.body.innerHTML);
</script>

</body>
</html>
»それを自分で試してみてください

<html>
<body>

<p>Hello World!</p>
<div>
<p>The DOM is very useful!</p>
<p>This example demonstrates the <b>document.documentElement</b> property.</p>
</div>

<script>
alert(document.documentElement.innerHTML);
</script>

</body>
</html>
»それを自分で試してみてください

nodeNameプロパティ

nodeNameプロパティは、ノードの名前を指定します。

  • nodeName読み取り専用です
  • nodeName要素ノードのタグ名と同じです
  • nodeName属性ノードの属性名です
  • nodeNameテキストノードのは常にある#text
  • nodeName文書ノードのは常にある#document

注: nodeName常にHTML要素の大文字のタグ名が含まれています。


nodeValueプロパティ

nodeValueプロパティはノードの値を指定します。

  • nodeValue要素ノードのために定義されていません
  • nodeValueテキストノードのテキストそのものです
  • nodeValue属性ノードのためには、属性値であります

nodeTypeプロパティ

nodeTypeプロパティは、ノードのタイプを返します。 nodeType読み取り専用です。

最も重要なノードタイプは次のとおりです。

要素型 ノードタイプ
Element 1
Attribute 2
Text 3
Comment 8
Document 9