NodeオブジェクトとElementオブジェクトの間で完全に混乱しています。
document.getElementById()
Elementオブジェクトをdocument.getElementsByClassName()
返す一方でNodeList オブジェクトを返します(要素またはノードのコレクション?)
divがElementオブジェクトの場合、div Nodeオブジェクトはどうでしょうか?
ノードオブジェクトとは
ドキュメントオブジェクト、要素オブジェクト、テキストオブジェクトもノードオブジェクトですか?
デビッドフラナガンの本「ドキュメントオブジェクト、その要素オブジェクト、テキストオブジェクトはすべてノードオブジェクト」のとおりです。
では、どうしてオブジェクトはElementオブジェクトとNodeオブジェクトのプロパティ/メソッドを継承できるのでしょうか。
はいの場合、継承のプロトタイプツリーでノードクラスと要素クラスが関連していると思います。
<div id="test">
<p class="para"> 123 </p>
<p class="para"> abc </p>
</div>
<p id="id_para"> next </p>
document.documentElement.toString(); // [object HTMLHtmlElement]
var div = document.getElementById("test");
div.toString(); // [object HTMLDivElement]
var p1 = document.getElementById("id_para");
p1.toString(); // [object HTMLParagraphElement]
var p2 = document.getElementsByClassName("para");
p2.toString(); //[object HTMLCollection]