--- title: Node slug: Web/API/Node tags: - API - DOM - DOM Reference - Interface - Node - Reference translation_of: Web/API/Node ---
{{APIRef("DOM")}}

Node はいくつもの DOM API オブジェクトタイプが継承しているインターフェイスで、それらのさまざまなタイプを同じように扱える (同じメソッドのセットを継承する、または同じ方法でテストできる) ようにします。

以下のインターフェイスはすべて、Node からメソッドやプロパティを継承しています: {{domxref("Document")}}, {{domxref("Element")}}, {{domxref("Attr")}}, {{domxref("CharacterData")}} (which {{domxref("Text")}}, {{domxref("Comment")}}, and {{domxref("CDATASection")}} inherit), {{domxref("ProcessingInstruction")}}, {{domxref("DocumentFragment")}}, {{domxref("DocumentType")}}, {{domxref("Notation")}}, {{domxref("Entity")}}, {{domxref("EntityReference")}}

これらのインターフェイスは、そのメソッドやプロパティが妥当でないときは null を返すことがあります。例外を投げることもあります - 例えば、子が存在できないノードタイプに子を追加するとき。

{{InheritanceDiagram}}

プロパティ

親である {{domxref("EventTarget")}} からプロパティを継承します。[1]

{{domxref("Node.baseURI")}} {{readonlyInline}}
ベース URL を表す {{domxref("DOMString")}} を返します。ベース URL の概念は、言語によって変わります。HTML ではプロトコル、ドメイン名、ディレクトリー構造に対応しており、最後の '/' までのすべてになります。
{{domxref("Node.baseURIObject")}} {{Non-standard_inline}} {{Fx_minversion_inline("3")}}
(ウェブコンテンツでは使用できません) 要素のベース URI を表す、読み取り専用の {{Interface("nsIURI")}} オブジェクトを返します。
{{domxref("Node.childNodes")}} {{readonlyInline}}
このノードのすべての子孫を含む、生きている {{domxref("NodeList")}} を返します。{{domxref("NodeList")}} が生きているとは、Node の子が変化すれば自動的に {{domxref("NodeList")}} オブジェクトが更新されることを意味します。
{{domxref("Node.firstChild")}} {{readonlyInline}}
ノードの直下の最初の子ノードを表す {{domxref("Node")}} を返します。子が存在しなければ null を返します。
{{domxref("Node.isConnected")}} {{readonlyInline}}
ノードが(直接/関節的に)コンテキストオブジェクトに接続されているかを示す論理値。例えば通常の DOM の場合は {{domxref("Document")}} オブジェクト、あるいはシャドーDOM の場合は {{domxref("ShadowRoot")}}。
{{domxref("Node.lastChild")}} {{readonlyInline}}
ノードの直下の最後の子ノードを表す {{domxref("Node")}} を返します。子が存在しなければ null を返します。
{{domxref("Node.nextSibling")}} {{readonlyInline}}
ツリー構造で次のノードを表す {{domxref("Node")}} を返します。該当するノードがない場合は null を返します。
{{domxref("Node.nodeName")}} {{readonlyInline}}
Node の名前を持つ {{domxref("DOMString")}} を返します。名前の構造は、ノードの型によって異なります。例えば、{{domxref("HTMLElement")}} は {{domxref("HTMLAudioElement")}} に対して 'audio' というように対応するタグの名前、{{domxref("Text")}} ノードは '#text' という文字列、{{domxref("Document")}} ノードは '#document' という文字列になります。
{{domxref("Node.nodePrincipal")}} {{Non-standard_inline}}{{Fx_minversion_inline("3")}}
ノードのプリンシパルを表す {{Interface("nsIPrincipal")}} を返します。
{{domxref("Node.nodeType")}}{{readonlyInline}}
ノードの型を表す unsigned short を返します。使用できる値:
名称
ELEMENT_NODE 1
ATTRIBUTE_NODE {{deprecated_inline}} 2
TEXT_NODE 3
CDATA_SECTION_NODE {{deprecated_inline}} 4
ENTITY_REFERENCE_NODE {{deprecated_inline}} 5
ENTITY_NODE {{deprecated_inline}} 6
PROCESSING_INSTRUCTION_NODE 7
COMMENT_NODE 8
DOCUMENT_NODE 9
DOCUMENT_TYPE_NODE 10
DOCUMENT_FRAGMENT_NODE 11
NOTATION_NODE {{deprecated_inline}} 12
{{domxref("Node.nodeValue")}}
カレントノードの値を取得または設定します。
{{domxref("Node.ownerDocument")}} {{readonlyInline}}
ノードが所属する {{domxref("Document")}} を返します。ノードが document 自身の場合は、null を返します。
{{domxref("Node.parentNode")}} {{readonlyInline}}
このノードの親の {{domxref("Node")}} を返します。ノードがツリーの最上位である、あるいはツリーに加わっていないなど、親が存在しない場合は null を返します。
{{domxref("Node.parentElement")}} {{readonlyInline}}
このノードの親の {{domxref("Element")}} を返します。ノードに親が存在しない、あるいは親が {{domxref("Element")}} ではない場合は、null を返します。
{{domxref("Node.previousSibling")}} {{readonlyInline}}
ツリー構造で前のノードを表す {{domxref("Node")}} を返します。該当するノードがない場合は null を返します。
{{domxref("Node.textContent")}}
要素や要素のすべての子孫のテキストコンテンツを取得または設定します。

非推奨プロパティ

{{domxref("Node.rootNode")}} {{readOnlyInline}} {{deprecated_inline}}
ツリーの最上位ノードを表す {{domxref("Node")}} オブジェクトを返します。自身がツリーの最上位ノードである場合はカレントノードを返します。これは {{domxref("Node.getRootNode()")}} に置き換えられました。

廃止プロパティ

{{domxref("Node.localName")}} {{obsolete_inline}}{{readonlyInline}}
要素の修飾名のローカル部分を表す {{domxref("DOMString")}} を返します。

注記: Firefox 3.5 および以前のバージョンでは、このプロパティで HTML 要素のローカル名が大文字でした (XHTML 要素を除く)。以降のバージョンではこのようになりませんので、このプロパティでは HTML および XHTML の両方が小文字になります。{{gecko_minversion_inline("1.9.2")}}

{{domxref("Node.namespaceURI")}} {{obsolete_inline}}{{readonlyInline}}
ノードの名前空間の URI。名前空間がない場合は null になります。

注記: Firefox 3.5 および以前のバージョンでは、HTML 要素の名前空間はありません。以降のバージョンでは、HTML 要素は HTML ツリーおよび XML ツリーで https://www.w3.org/1999/xhtml/ 名前空間内に存在します。{{gecko_minversion_inline("1.9.2")}}

{{domxref("Node.prefix")}} {{obsolete_inline}}{{readonlyInline}}
ノードの名前空間の接頭辞を表す {{domxref("DOMString")}} を返します。接頭辞が指定されていない場合は null を返します。

メソッド

親である {{domxref("EventTarget")}} からメソッドを継承します。[1]

{{domxref("Node.appendChild()")}}
カレントノードの最後の子として、指定した childNode 引数を追加します。
引数が DOM ツリー上の既存のノードを参照している場合は、ノードが現在の位置から外されて新しい位置に追加されます。
{{domxref("Node.cloneNode()")}}
{{domxref("Node")}} を複製します。また、すべての内容物を複製することもできます。デフォルトで、ノードの内容物を複製します。
{{domxref("Node.compareDocumentPosition()")}}
カレントノードの位置を、他のドキュメント内の別のノードと比較します。
{{domxref("Node.contains()")}}
ノードが指定したノードの子孫であるか否かを示す {{jsxref("Boolean")}} 値を返します。
{{domxref("Node.getRootNode()")}}
コンテキストオブジェクトのルートを返します。任意で、shadow root が使用可能である場合にそれを含めることができます。
{{domxref("Node.hasChildNodes()")}}
要素が子ノードを持っているか否かを示す {{jsxref("Boolean")}} を返します。
{{domxref("Node.insertBefore()")}}
カレントノードの子として、参照先ノードの前に {{domxref("Node")}} を挿入します。
{{domxref("Node.isDefaultNamespace()")}}
引数として名前空間の URI を受け入れて、名前空間が指定したノードのデフォルトの名前空間であれば true、そうでない場合は false である {{jsxref("Boolean")}} を返します。
{{domxref("Node.isEqualNode()")}}
2 つのノードが同じ型であり、定義されているすべてのデータポイントが一致するか否かを表す {{jsxref("Boolean")}}を返します。
{{domxref("Node.isSameNode()")}}
2 つのノードが同じである (すなわち、同じオブジェクトを参照している) か否かを示す {{jsxref("Boolean")}} 値を返します。
{{domxref("Node.lookupPrefix()")}}
指定した名前空間 URI の接頭辞があれば、その接頭辞を含む {{domxref("DOMString")}} を返します。接頭辞がない場合は null を返します。複数の接頭辞がある場合の結果は実装依存です。
{{domxref("Node.lookupNamespaceURI()")}}
接頭辞を受け入れて、指定したノードで接頭辞が関連付けられた名前空間が見つかった場合は名前空間の URI を返します (見つからない場合は null を返します)。接頭辞として null を与えると、デフォルトの名前空間を返します。
{{domxref("Node.normalize()")}}
要素内のすべてのテキストノードをクリーンアップ (隣接ノードを統合、空のノードを削除) します。
{{domxref("Node.removeChild()")}}
カレント要素から子ノードを削除します。カレント要素はカレントノードの子であることが必要です。
{{domxref("Node.replaceChild()")}}
カレントノードの子 {{domxref("Node")}} のひとつを、引数で指定した別のノードで置き換えます。

廃止メソッド

{{domxref("Node.getFeature()")}} {{obsolete_inline}}
x
{{domxref("Node.getUserData()")}} {{obsolete_inline}}
ユーザーが、ノードから {{domxref("DOMUserData")}} を取得できます。
{{domxref("Node.hasAttributes()")}} {{obsolete_inline}}
要素がなんらかの属性を持っているか否かを示す {{jsxref("Boolean")}} を返します。
{{domxref("Node.isSupported()")}} {{obsolete_inline}}
DOM 実装が特定の機能を実装しており、またその機能が指定したノードでサポートされているかを確認して、その結果を表す {{jsxref("Boolean")}} を返します。
{{domxref("Node.setUserData()")}} {{obsolete_inline}}
ユーザーが、ノードに {{domxref("DOMUserData")}} を追加または削除できます。

すべての子ノードを走査する

次の関数はすべての子ノードを再帰的にループして、それらに対してコールバック関数を呼び出します。(また、親ノード自身に対しても同様に呼び出されます。

function DOMComb (oParent, oCallback) {
  if (oParent.hasChildNodes()) {
    for (var oNode = oParent.firstChild; oNode; oNode = oNode.nextSibling) {
      DOMComb(oNode, oCallback);
    }
  }
  oCallback.call(oParent);
}

構文

DOMComb(parentNode, callbackFunction);

説明

parentNode のすべての子ノードと parentNode 自身を再帰的にループして、それらを this オブジェクトとして callbackFunction を実行します。

引数

parentNode
親ノード (Node Object)
callbackFunction
コールバック関数 (Function)

用例

次の例はボディの中のテキストの内容を console.log に送るものです:

function printContent () {
  if (this.nodeValue) { console.log(this.nodeValue); }
}

onload = function () {
  DOMComb(document.body, printContent);
};

ノードに内包されているすべての子ノードを削除する

Element.prototype.removeAll = function () {
  while (this.firstChild) { this.removeChild(this.firstChild); }
  return this;
};

使用例

/* ... an alternative to document.body.innerHTML = "" ... */
document.body.removeAll();

仕様

仕様書 策定状況 コメント
{{SpecName('DOM WHATWG', '#interface-node', 'Node')}} {{Spec2('DOM WHATWG')}} 以下のプロパティを削除: attributesnamespaceURIprefixlocalName
以下のメソッドを削除: isSupported()hasAttributes()getFeature()setUserData()getUserData()
{{SpecName('DOM3 Core', 'core.html#ID-1950641247', 'Node')}} {{Spec2('DOM3 Core')}} {{domxref("Document")}} で insertBefore()replaceChild()removeChild()appendChild() メソッドを呼び出すと、もうひとつの種類のエラー (NOT_SUPPORTED_ERR) を返します。
normalize() メソッドを、適切な {{domxref("DOMConfiguration")}} フラグが設定されていれば {{domxref("Text")}} ノードも正規化できるように変更。
以下のメソッドを追加: compareDocumentPosition()isSameNode()lookupPrefix()isDefaultNamespace()lookupNamespaceURI()isEqualNode()getFeature()setUserData()getUserData()
以下のプロパティを追加: baseURItextContent
{{SpecName('DOM2 Core', 'core.html#ID-1950641247', 'Node')}} {{Spec2('DOM2 Core')}} ownerDocument プロパティを、{{domxref("DocumentFragment")}} が null も返すように若干変更。
以下のプロパティを追加: namespaceURIprefixlocalName
以下のメソッドを追加: normalize()isSupported()hasAttributes()
{{SpecName('DOM1', 'level-one-core.html#ID-1950641247', 'Node')}} {{Spec2('DOM1')}} 初期定義

ブラウザー実装状況

{{Compat("api.Node")}}

{{CompatibilityTable}}

機能 Chrome Edge Firefox (Gecko) Internet Explorer Opera Safari
基本サポート {{CompatVersionUnknown}}[1] {{CompatVersionUnknown}} {{CompatGeckoDesktop("1.0")}} {{CompatVersionUnknown}} {{CompatVersionUnknown}}[1] {{CompatVersionUnknown}}[1]
getFeature(){{obsolete_inline}} {{CompatNo}} {{CompatUnknown}} {{CompatGeckoDesktop("1.0")}}
{{CompatNo}}{{CompatGeckoDesktop("7.0")}}
{{CompatUnknown}} {{CompatNo}} {{CompatNo}}
getUserData()setUserData()hasAttributes() {{deprecated_inline}} {{CompatNo}} {{CompatUnknown}} {{CompatGeckoDesktop("1.0")}}
{{CompatNo}}{{CompatGeckoDesktop("22.0")}}
{{CompatUnknown}} {{CompatNo}} {{CompatNo}}
isSameNode() {{CompatVersionUnknown}} {{CompatUnknown}} {{CompatGeckoDesktop("1.0")}}
{{CompatGeckoDesktop("10")}} で削除
{{CompatGeckoDesktop("48")}} で再追加
{{CompatUnknown}} {{CompatNo}} {{CompatNo}}
isSupported() {{obsolete_inline}} {{CompatNo}} {{CompatUnknown}} {{CompatGeckoDesktop("1.0")}} {{CompatUnknown}} {{CompatUnknown}} {{CompatUnknown}}
attributes {{CompatNo}} {{CompatUnknown}} {{CompatGeckoDesktop("1.0")}}
{{CompatNo}}{{CompatGeckoDesktop("22.0")}}[2]
{{CompatNo}} {{CompatNo}} {{CompatNo}}
rootNode() {{CompatUnknown}} {{CompatUnknown}} {{CompatGeckoDesktop(48)}} {{CompatUnknown}} {{CompatUnknown}} {{CompatUnknown}}
getRootNode() の追加と rootNode の非推奨化 {{CompatChrome(54.0)}} {{CompatUnknown}} {{CompatGeckoDesktop(53)}} {{CompatUnknown}} {{CompatOpera(41)}} {{CompatUnknown}}
機能 Android Android Webview Edge Firefox Mobile (Gecko) IE Mobile Opera Mobile Safari Mobile Android 版 Chrome
基本サポート {{CompatUnknown}} {{CompatVersionUnknown}}[1] {{CompatVersionUnknown}} {{CompatGeckoMobile("1.0")}} {{CompatVersionUnknown}} {{CompatVersionUnknown}}[1] {{CompatVersionUnknown}}[1] {{CompatVersionUnknown}}[1]
getFeature(){{obsolete_inline}} {{CompatNo}} {{CompatNo}} {{CompatUnknown}} {{CompatGeckoMobile("1.0")}}
{{CompatNo}}{{CompatGeckoDesktop("7.0")}}
{{CompatUnknown}} {{CompatNo}} {{CompatNo}} {{CompatNo}}
getUserData()setUserData()hasAttributes() {{deprecated_inline}} {{CompatNo}} {{CompatNo}} {{CompatUnknown}} {{CompatUnknown}} {{CompatUnknown}} {{CompatUnknown}} {{CompatUnknown}} {{CompatNo}}
isSameNode() {{CompatUnknown}} {{CompatVersionUnknown}} {{CompatUnknown}} {{CompatGeckoDesktop("1.0")}}
{{CompatGeckoDesktop("10")}} で削除
{{CompatGeckoDesktop("48")}} で再追加
{{CompatUnknown}} {{CompatUnknown}} {{CompatUnknown}} {{CompatVersionUnknown}}
isSupported() {{obsolete_inline}} {{CompatUnknown}} {{CompatNo}} {{CompatUnknown}} {{CompatUnknown}} {{CompatUnknown}} {{CompatUnknown}} {{CompatUnknown}} {{CompatNo}}
attributes {{CompatUnknown}} {{CompatNo}} {{CompatUnknown}} {{CompatUnknown}} {{CompatUnknown}} {{CompatUnknown}} {{CompatUnknown}} {{CompatNo}}
rootNode() {{CompatUnknown}} {{CompatNo}} {{CompatUnknown}} {{CompatGeckoMobile(48)}} {{CompatUnknown}} {{CompatUnknown}} {{CompatUnknown}} {{CompatNo}}
getRootNode() の追加と rootNode の非推奨化 {{CompatNo}} {{CompatChrome(54.0)}} {{CompatUnknown}} {{CompatGeckoMobile(53)}} {{CompatUnknown}} {{CompatOperaMobile(41)}} {{CompatUnknown}} {{CompatChrome(54.0)}}

[1] WebKit と古いバージョンの Blink は、誤って Node が {{domxref("EventTarget")}} から継承していません。

[2] Gecko 22.0 {{geckoRelease("22.0")}} で、attributes プロパティを {{domxref("Element")}} に移動しました。

[3] DOM4 標準に従って、プロパティを {{domxref("Element")}} および {{domxref("Attr")}} API に移動しました。