Разница между объектом Node и объектом Element?

Я полностью запутался между объектом Node и объектом Element. document.getElementById()возвращает объект Element, а document.getElementsByClassName() возвращает объект NodeList (набор элементов или узлов?)

Если div является объектом Element, то как насчет объекта div Node?

Что такое объект-узел?

Являются ли объект документа, объект элемента и текстовый объект также объектом узла?

Согласно книге Дэвида Фланагана «Объект документа, его объекты-элементы и текстовые объекты — все это объекты 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]
265
задан piperchester 19 August 2016 в 15:39
поделиться