nodeType、nodeValue、nodeNameについて

javascript

nodeType、nodeValue、nodeNameについて

ノードにはnodeTypeと呼ばれるノードの種類を表すものがあります。
nodeTypeは言語仕様では12種類指定されており、現在では非推奨のものもあります。

値はunsigned short型で定義されています。

以下、全12種類のnodeTypeを記載します。

1
2
3
4
5
6
7
8
9
10
11
12
ELEMENT_NODE                 1
ATTRIBUTE_NODE               2(非推奨)
TEXT_NODE                    3
CDATA_SECTION_NODE           4(非推奨)
ENTITY_REFERENCE_NODE        5(非推奨)
ENTITY_NODE                  6(非推奨)
PROCESSING_INSTRUCTION_NODE  7
COMMENT_NODE                 8
DOCUMENT_NODE                9
DOCUMENT_TYPE_NODE          10
DOCUMENT_FRAGMENT_NODE      11
NOTATION_NODE               12(非推奨)

nodeTypeについての検証は行いませんが、前回の投稿でnextSiblingによる探索を試した際、
HTMLのDOMからTextオブジェクトを取得した結果をconsole出力した結果を記載していました。
具体的には2つの例になりますが、その時の出力結果を引用すると、

「Textオブジェクト」の場合、nodeType は 3 が取得できていました。
(以下の出力はnextSiblingを試した時のもの)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
c1.nextSibling -> [object Text]
wholeText :
          
assignedSlot : null
splitText : function splitText() { [native code] }
data :
          
length : 3
previousElementSibling : [object HTMLDivElement]
nextElementSibling : [object HTMLDivElement]
after : function after() { [native code] }
appendData : function appendData() { [native code] }
before : function before() { [native code] }
deleteData : function deleteData() { [native code] }
insertData : function insertData() { [native code] }
remove : function remove() { [native code] }
replaceData : function replaceData() { [native code] }
replaceWith : function replaceWith() { [native code] }
substringData : function substringData() { [native code] }
nodeType : 3
nodeName : #text
(以下省略)

また、「HTMLDivElementオブジェクト」の場合、nodeType は 1 が取得できていました。
(以下の出力はnextSiblingを試した時のもの)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
c1.nextSibling -> [object HTMLDivElement]
align :
title :
lang :
translate : true
dir :
hidden : false
accessKey :
draggable : false
spellcheck : true
autocapitalize :
(出力途中は省略)
nodeType : 1
nodeName : DIV

また、nodeValueについては、Textオブジェクトに持つ内容を示し、
nodeNameについては、そのオブジェクトが持つElementのタグ名を示します。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です