node和element的區(qū)別:1、Node是節(jié)點(diǎn),其中包含不同類型的節(jié)點(diǎn),而Element只是Node節(jié)點(diǎn)的一種;2、Element繼承于Node,具有Node的方法,同時(shí)又拓展了很多自己的特有方法。
本教程操作環(huán)境:windows7系統(tǒng)、javascript1.8.5版、Dell G3電腦。
我們經(jīng)常使用document.getElementById去獲取DOM中的元素,也會(huì)使用childNodes來(lái)獲取子節(jié)點(diǎn)。那么Element和Node的區(qū)別是什么?
Node提供的節(jié)點(diǎn)與Element提供的節(jié)點(diǎn)
在學(xué)jQuery的時(shí)候,大家是不是也是總混淆Node與Eleme
Node與Element的關(guān)系
Node與Element的關(guān)系,從繼承方面思考可能清晰很多。
Element 繼承于 Node,具有Node的方法,同時(shí)又拓展了很多自己的特有方法。
在Element的一些方法里,是明確區(qū)分了Node和Element的
比如說(shuō):childNodes與 children, parentNode與parentElement等方法。
Node的一些方法,返回值為Node,比如說(shuō)文本節(jié),注釋節(jié)點(diǎn)之類的,而Element的一些方法,返回值則一定是Element。
區(qū)分清楚這點(diǎn)了,也能避免很多低級(jí)問(wèn)題。
簡(jiǎn)單的說(shuō)就是Node是一個(gè)基類,DOM中的Element,Text和Comment都繼承于它。
換句話說(shuō),Element,Text和Comment是三種特殊的Node,它們分別叫做ELEMENT_NODE,
TEXT_NODE和COMMENT_NODE。
所以我們平時(shí)使用的html上的元素,即Element,是類型為ELEMENT_NODE的Node。
總結(jié):
-
Node是節(jié)點(diǎn),其中包含不同類型的節(jié)點(diǎn),Element只是Node節(jié)點(diǎn)的一種。
-
Element繼承與Node,可以調(diào)用Node的方法。
-
給所有DOM元素添加方法,只需要污染Node或者Element的原型鏈就行。
Node在這兒指DOM節(jié)點(diǎn),其中包括了我們最常見(jiàn)的元素節(jié)點(diǎn),比如 div/p/span 之類的。除此之外還包括了 Document/Comment 之類的節(jié)點(diǎn)。
一個(gè)節(jié)點(diǎn)的類型,可以通過(guò)其nodeType類型查看到,具體的類型則可以看下圖:

【