nodeType、nodeValue、nodeNameについて
ノードにはnodeTypeと呼ばれるノードの種類を表すものがあります。
nodeTypeは言語仕様では12種類指定されており、現在では非推奨のものもあります。
値はunsigned short型で定義されています。
以下、全12種類のnodeTypeを記載します。
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を試した時のもの)
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を試した時のもの)
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のタグ名を示します。