Node インターフェイスは、ドキュメントオブジェクトモデル全体の基本的なデータ型である。これは文書ツリー内の単一のノードを表す。 Node インターフェイスを実装する全オブジェクトが子を扱うメソッドを持つが、 Node インターフェイスを実装するオブジェクトの全てが子を持つわけではない。例えば、 Text ノードは子を持たず、このようなノードへの子の追加は DOMException を生じる。
プロパティ nodeName, nodeValue, attributes は、特定の派生インターフェイスへキャストダウンせずにノートで情報を取得する機構として含まれている。特定の nodeType のプロパティのはっきりしたマッピングがないケース(例えば、 Element の nodeValue や Comment の attributes)では、これは null を返す。特化したインターフェイスが関連情報の取得と設定を行う付加的でより便利なメカニズムを含んでいるかもしれないことに注意。
これのノード型を示す整数、
Note: 200 までの数値は、将来の利用の可能性に備えW3Cが予約している。
| ATTRIBUTE_NODE | ノードは Attr である。 |
| CDATA_SECTION_NODE | ノードは CDATASection である。 |
| COMMENT_NODE | ノードは Comment である。 |
| DOCUMENT_FRAGMENT_NODE | ノードは DocumentFragment である。 |
| DOCUMENT_NODE | ノードは Document である。 |
| DOCUMENT_TYPE_NODE | ノードは DocumentType である。 |
| ELEMENT_NODE | ノードは Element である。 |
| ENTITY_NODE | ノードは Entity である。 |
| ENTITY_REFERENCE_NODE | ノードは EntityReference である。 |
| NOTATION_NODE | ノードは Notation である。 |
| PROCESSING_INSTRUCTION_NODE | ノードは ProcessingInstruction である。 |
| TEXT_NODE | ノードは Text ノードである。 |
nodeName, nodeValue, attributes の値は、ノードの方によって次のように変化する:
| Interface | nodeName | nodeValue | attributes |
|---|---|---|---|
| Attr | 属性名 | 属性値 | null |
| CDATASection | #cdata-section | CDATAセクションの内容 | null |
| Comment | #comment | 注釈宣言の内容 | null |
| Document | #document | null | null |
| DocumentFragment | #document-fragment | null | null |
| DocumentType | 文書型名 | null | null |
| Element | タグ名 | null | NamedNodeMap |
| Entity | 実体名 | null | null |
| EntityReference | 参照される実体名 | null | null |
| Notation | 記法名 | null | null |
| ProcessingInstruction | target | ターゲットを除く全体の内容 | null |
| Text | #text | テキストノードの内容 | null |
attributesNamedNodeMap型, 読取専用
childNodesNodeList型, 読取専用
firstChildNode型, 読取専用
null を返す。lastChildNode型, 読取専用
null を返す。localNameDOMString型, 読取専用
namespaceURIDOMString型, 読取専用
null。ELEMENT_NODE, ATTRIBUTE_NODE 以外の型のノードと Document インターフェイスの createElement のようなDOMレベル1メソッドで生成されたノードについては、これは常に null である。
Note: Namespaces in XML 仕様 [Namespaces] により、属性は自分が付属する要素から名前空間を継承しない。属性が明示的に名前空間を与えられない時、それは単純に名前空間をもたない。
nextSiblingNode型, 読取専用
null を返す。nodeNameDOMString型, 読取専用
nodeTypeunsigned
short型, 読取専用
nodeValuenull が定義される時、これの設定は意味を持たない。DOMString 変数の適正よりも多くの文字が返されようとする時に派生。ownerDocumentDocument型, 読取専用
Document オブジェクト。これは新たなノードの生成に用いる Document オブジェクトでもある。このノードが Document であるか、 Document にまだ使用されていない DocumentType であるならば、これは null である。parentNodeNode型, 読取専用
prefixnull。nodeName プロパティを、 Element, Attr インターフェイスの tagName, name プロパティとともに、適用可能な場合、変更することに注意。namespaceURI と localName が変わらないので、デフォルト値の新しい属性を作らず、もとの接頭辞が見えることにも注意。ELEMENT_NODE, ATTRIBUTE_NODE 以外の型のノード、 Document インターフェイスの createElement のようなDOMレベル1メソッドで生成されたノードについては、これは常に null を返す。prefix が奇形(malformed)である場合、このノードの namespaceURI が null である場合、指定された接頭辞が "xml" であり、かつ namespaceURI が "http://www.w3.org/XML/1998/namespace" ではない場合、このノードが属性で指定された接頭辞が "xmlns" であり、かつ namespaceURI が "http://www.w3.org./2000/xmlns/" でない場合、このノードが属性でノードの qualifiedName が "xmlns" [Namespaces] である場合に発生。previousSiblingNode型, 読取専用
null。appendChild( newChild )このノードの子のリストの末尾に newChild を追加する。 newChild が既にツリー内にある場合は、まず取り除かれる。
DocumentFragment オブジェクトである場合は、フラグメントの内容全体がこのノードの子のリスト内に移動する。Node 型。追加したノード。
newChild ノードの型の子を許可しない場合、また追加するノードがこのノードの 祖先 のどれかである場合に発生。newChild が生成された文書が、このノードが生成された文書と異なる場合に発生。cloneNode( deep )このノードの複製を返す。即ちノードの一般的コピーコンストラクタとして提供される。複製されたノードは親を持たない; (parentNode が nullである)。
Element のクローニングは、XMLプロセッサが生成するデフォルトの属性を表すものを含めて全属性とその値をコピーするが、深いクローンでもない限りはこのメソッドはそれが内包するテキストをコピーしない。テキストは子 Text ノードに包含されるからだ。 Attribute の直接のクローニングは、 Element のクローン操作の一部として複製されるのに対して、定義済み属性を (specified が true である) を返す。その他の型のノードのクローニングは単位このノードのコピーを返す。
不変の下位ツリーのクローニングは変更可能なコピーを生じるが、 EntityReference クローンの子は 読取専用 であることに注意。加えて、未定義の Attr ノードのクローンは定義済みである。そして、 Document, DocumentType, Entity, Notation ノードのクローニングは実装に依存する。
true ならば、指定されたノード以下の下位ツリーを再帰的に複製する; false ならば、そのノード自身(及び Element の場合はその属性)のみを複製する。Node 型。複製されたノード。
hasAttributes( )そのノードが(要素である場合、)属性を持つかどうかを返す。
boolean 型。そのノードが何らかの属性を持っていれば true, そうでない場合は false。
hasChildNodes( )そのノードが子を持っているかどうかを返す。
boolean 型。このノードが何らかの子を持っていれば true, そうでない場合は false。
insertBefore( newChild, refChild )既存の子ノード refChild の前に、ノード newChild を挿入する。 refChild が null ならば、 newChild はこのリストの末尾に挿入される。
newChild が DocumentFragment オブジェクトの場合、その子全てが refChild の前に同じ順序で挿入される。 newChild が既にツリー内に存在する場合、それはまず削除される。
Node 型。挿入されているノード。
newChild ノードの型の子を許可しない場合、また挿入するノードがこのノードの 祖先 である場合に発生。newChild が生成された文書が、このノードが生成された文書と異なる場合に発生。refChild がこのノードの子でない場合に発生。isSupported( feature, version )DOM実装が特定の機能を実装していて、このノードでサポートされているかどうかを検査する。
DOMImplementation 上のメソッド hasFeature に渡す名前と同じである。true を返すメソッドになる。boolean 型。このノートで指定された昨日がサポートされていれば true、そうでない場合は false。
normalize( )属性ノードを含め、この Node 下の下位ツリー内全ての深さにある Text ノードを "normal" 形式にする。そこでは構造 (例. 要素, 注釈, 処理命令, CDATAセクション, 実体参照) だけが Text ノードを分け, 即ち隣接する Text ノードも空の Text ノードも存在しない。これを使い、保存・再読込したかのように文書のDOMビューの等価性を保証できるし、特殊な文書ツリー構造に依存する操作 (XPointer [XPointer] lookup 等) が使われることになる際も有用である。
Note: 文書が CDATASections を含む場合、正規化操作だけでは満足に動作しないかもしれない。XPointers は Text ノードと CDATASection ノードを区別しないからだ。
(無し)
removeChild( oldChild )oldChild で示される子ノードをこのリストから取り除き、それを返す。
Node 型。取り除いたノード。
oldChild がこのノードの子でない場合に発生。replaceChild( newChild, oldChild )子のリスト内の子ノード oldChild を newChild で置き換え、oldChild ノードを返す。
newChild が DocumentFragment オブジェクトである場合、 oldChild は DocumentFragment の子全てに置き換えられ、同じ順序に挿入される。 newChild が既にツリー内にあるときは、それが取り除かれる。
Node 型。置き換えられたノード。
newChild ノードの型の子を許可しない場合、また置かれるノードがこのノードの 祖先 のどれかである場合に発生。newChild が生成された文書が、このノードが生成された文書と異なる場合に発生。oldChild が子のノードの子でない場合に発生。
interface Node {
// NodeType
const unsigned short ELEMENT_NODE = 1;
const unsigned short ATTRIBUTE_NODE = 2;
const unsigned short TEXT_NODE = 3;
const unsigned short CDATA_SECTION_NODE = 4;
const unsigned short ENTITY_REFERENCE_NODE = 5;
const unsigned short ENTITY_NODE = 6;
const unsigned short PROCESSING_INSTRUCTION_NODE = 7;
const unsigned short COMMENT_NODE = 8;
const unsigned short DOCUMENT_NODE = 9;
const unsigned short DOCUMENT_TYPE_NODE = 10;
const unsigned short DOCUMENT_FRAGMENT_NODE = 11;
const unsigned short NOTATION_NODE = 12;
readonly attribute DOMString nodeName;
attribute DOMString nodeValue;
// raises(DOMException) on setting
// raises(DOMException) on retrieval
readonly attribute unsigned short nodeType;
readonly attribute Node parentNode;
readonly attribute NodeList childNodes;
readonly attribute Node firstChild;
readonly attribute Node lastChild;
readonly attribute Node previousSibling;
readonly attribute Node nextSibling;
readonly attribute NamedNodeMap attributes;
// Modified in DOM Level 2:
readonly attribute Document ownerDocument;
Node insertBefore(in Node newChild,
in Node refChild)
raises(DOMException);
Node replaceChild(in Node newChild,
in Node oldChild)
raises(DOMException);
Node removeChild(in Node oldChild)
raises(DOMException);
Node appendChild(in Node newChild)
raises(DOMException);
boolean hasChildNodes();
Node cloneNode(in boolean deep);
// Modified in DOM Level 2:
void normalize();
// Introduced in DOM Level 2:
boolean isSupported(in DOMString feature,
in DOMString version);
// Introduced in DOM Level 2:
readonly attribute DOMString namespaceURI;
// Introduced in DOM Level 2:
attribute DOMString prefix;
// raises(DOMException) on setting
// Introduced in DOM Level 2:
readonly attribute DOMString localName;
// Introduced in DOM Level 2:
boolean hasAttributes();
};