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のタグ名を示します。