ノード (Node)
Node(ノード)は複数のDOMのタイプから継承されるインターフェースであり、 様々なタイプのDOMを同様に扱う(または検証)ことを可能にしてくれます。
下記のインターフェースは、Nodeからそのメソッドとプロパティを全て継承しています。
- Document
- Element
- CharacterData(Text、 Comment、CDATASection継承)
- ProcessingInstruction
- DocumentFragment
- DocumentType
- Notation
- Entity
- EntityReference
これらのインタフェースは、メソッドとプロパティが関連していない特定の状況でnullを返すことがあります。 例えば、子を持つことが出来ないNodeのタイプに子を追加する際に、例外がスローされるかもしれません。
例
ブラウザの全ての子ノード
下記の関数はノードの全ての子ノードを再帰的に巡り、その子ノード上(親ノード自身上でも)でコールバック関数を実行します。
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
)の全ての子ノードと、その親ノード自身が、
それぞれのオブジェクト上でcallbackFunction
を実行します。
引数 | 説明 |
---|---|
parentNode |
型: 親ノードを指定します。 |
callbackFunction |
型: コールバック関数を指定します。 |
使用例
下記の例は、bodyのテキスト内容をconsole.log
に送ります。
function printContent () {
if (this.nodeValue) { console.log(this.nodeValue); }
}
onload = function () {
DOMComb(document.body, printContent);
};
プロパティ、メソッド
-
プロパティ
-
.attributes
.attributesは、指定されたノードに登録されている全てのノード属性のコレクションです。
-
.baseURI
ノードの絶対base URLを返します。
-
.childNodes
要素の子ノードのコレクションを返します。
-
.firstChild
ツリー上での、ノードの最初の子要素を返します。ノードが子を持たなければnullが返ります。
-
.lastChild
ノードの最後の子要素を返します。
-
.localName
ノードの修飾名のローカル部分を返します。
-
.namespaceURI
ノードのnamespace URIを返します。ノードが名前空間内になければ、nullを返します。(読み取り専用)
-
.nextSibling
指定したノードのすぐ後に続くノードを返します。
-
.nodeName
現ノードの名前を文字列として返します。
-
.nodeType
ノードのタイプを表すコードの数値を返します。読み取り専用です。
-
.nodeValue
現在のノードの値を返すか、または設定を行います。
-
.ownerDocument
ownerDocumentプロパティは、このノードの最上位階層のdocumentオブジェクトを返します。
-
.parentElement
DOMノードの親要素(Element)を返します。ノードが親を持たない、またはその親がDOM要素(Element)で無ければ、nullを返します。
-
.parentNode
指定したノードのDOMツリー上での親を返します。
-
.previousSibling
指定したノードのすぐ前にあるノードを返します。
-
.textContent
ノードとその子孫のテキスト内容を取得、または設定します。
-
メソッド
-
.appendChild()
指定した要素の子ノードのリストの最後に、ノードを挿入します。
-
.cloneNode()
このメソッドを呼んだノードの複製を返します。
-
.compareDocumentPosition()
現在のノードの位置と、他のドキュメントの内の別のノードとの位置を比較します。
-
.contains()
指定されたノードが、あるノードの子孫であるか否かを指し示します。
-
.hasAttributes()
hasAttributesは、現在の要素が属性を持つ持たないを、trueまたはfalseの真偽値で返します。
-
.hasChildNodes()
hasChildNodesは、現在のノードが子ノードを持つ、持たないの真偽値を返します。
-
.insertBefore()
第2引数のノードの前に、第1引数のノードを挿入します。
-
.isDefaultNamespace()
isDefaultNamespaceは名前空間URIを引数として受け取り、名前空間が指定されたノード上のデフォルトの名前空間であればtrueを返し、そうでなければfalseを返します。
-
.isEqualNode()
2つのノードが等しいかを調べます。
-
.lookupNamespaceURI()
接頭辞(prefix)を受け取り、指定されたノードに関連付くnamespaceURIが見つかればそれを返します。(見つからなければnull)
-
.lookupPrefix()
指定されたnamespaceURIの接頭辞(prefix)を返し、無ければnullを返します。
-
.normalize()
特定のノードと、そのサブツリー全てを"標準"(normalized)形式にします。
-
.removeChild()
DOMから子ノードを削除し、その削除されたノードが返されます。
-
.replaceChild()
特定の要素の子ノードを、別の要素と置き換えます。
-
プロパティ(ParentNode)
-
.childElementCount
指定された要素の子要素の数を整数型で返します。読み取り専用のプロパティです。
-
.children
指定された要素の子要素のコレクション(HTMLCollection)を返します。読み取り専用のプロパティです。
-
.firstElementChild
オブジェクトの最初の子要素を返します。もし子要素が存在しなければnullを返します。読み取り専用のプロパティです。
-
.lastElementChild
オブジェクトの最後の子要素を返します。もし子要素が存在しなければnullを返します。読み取り専用のプロパティです。
-
プロパティ(ChildNode)
-
.nextElementSibling
指定した要素の親の子(兄弟)のリスト内で、すぐ次に続く要素を返します。もし、指定した要素がリスト内で最後の要素であればnullを返します。読み取り専用のプロパティです。
-
.previousElementSibling
指定した要素の親の子(兄弟)のリスト内で、すぐ前の要素を返します。もし、指定した要素がリスト内で最初の要素であればnullを返します。読み取り専用のプロパティです。
仕様
ブラウザ互換性
機能 | Chrome | Firefox (Gecko) |
IE | Opera | Safari |
---|---|---|---|---|---|
基本 | ◯ | 1.0 (1.7 or earlier) | ◯ | ◯ | ◯ |
機能 | Android | Firefox Mobile |
IE Mobile |
Opera Mobile |
Safari Mobile |
---|---|---|---|---|---|
基本 | ◯ | 1.0 (1.7 or earlier) | ◯ | ◯ | ◯ |
[1] Webkit and Blink incorrectly doesn't make Node
inherit from EventTarget.
© 2017 Mozilla Contributors
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
このページは、ページトップのURL先のMozilla Developer Network(以下、MDN)のコンテンツを翻訳した内容を基に構成されています。 構成について異なる点も含まれますので、下記の項目を確認し、必要に応じて元のコンテンツをご確認ください。 もし、誤訳などの間違いを見つけましたら、 @tomofまで教えていただければ幸いです。
- 特定のブラウザに特化しすぎている情報やあまりにも古い情報、 または試験的に導入されているようなAPIや機能については、省略していることがあります。
- 例やデモについて、実際にページ内で動作させる関係で一部ソースコードを変更している場合や、 その例で使用しているコンテンツの単語や文章などを日本人向けに変更しいてる場合があります。
- MDNの更新頻度が高いため、元のコンテンツと比べ情報が古くなっている可能性があります。
- "訳注:"などの断わりを入れた上で、日本人向けの情報の追記を行っている事があります。