Node与Element的关系

Node与Element的关系,从继承方面思考可能清晰很多。

Element 继承于 Node,具有Node的方法,同时又拓展了很多自己的特有方法。

在Element的一些方法里,是明确区分了Node和Element的
比如说:​​​childNodes​​​与 ​​children​​​, ​​parentNode​​​与​​parentElement​​等方法。

Node的一些方法,返回值为Node,比如说文本节点,注释节点之类的,而Element的一些方法,返回值则一定是Element。
区分清楚这点了,也能避免很多低级问题。

简单的说就是​​Node​​​是一个基类,DOM中的​​Element​​​,​​Text​​​和​​Comment​​​都继承于它。
换句话说,​​​Element​​​,​​Text​​​和​​Comment​​​是三种特殊的​​Node​​​,它们分别叫做​​ELEMENT_NODE​​​,
​​​TEXT_NODE​​​和​​COMMENT_NODE​​。

所以我们平时使用的html上的元素,即Element,是类型为​​ELEMENT_NODE​​的​​Node​​。

总结:

  1. Node是节点,其中包含不同类型的节点,Element只是Node节点的一种。
  2. Element继承与Node,可以调用Node的方法。
  3. 给所有DOM元素添加方法,只需要污染Node或者Element的原型链就行。
  4. 你在XML中 你就把还有子标签的节点为Element 没有的就直接Node就差不多,但Element自己有自己的Node 就像什么文本节点,注释节点之类的,主要还得实操和知道JS的DOM.

所以 别混淆  素材来源 -- 知乎 -- 迦南(貌似也不是原创..)


作者:咸瑜​