有人可以用尽可能简单的方式解释我吗,经典DOM parentNode和Firefox 9 parentElement中新引入的有什么区别?
DOM parentNode和parentElement之间的区别
还有一个区别,但仅在Internet Explorer中。当您混合使用HTML和SVG时会发生这种情况。如果父级是这两个的“其他”,则.parentNode给出父级,而.parentElement给出未定义。
parentElement
是Firefox 9和DOM4的新功能,但是它已经存在于所有其他主流浏览器中已有很长时间了。
在大多数情况下,它与相同parentNode
。唯一的区别是节点parentNode
不是元素时。如果是,parentElement
则为null
。
举个例子:
document.body.parentNode; // the <html> element
document.body.parentElement; // the <html> element
document.documentElement.parentNode; // the document node
document.documentElement.parentElement; // null
(document.documentElement.parentNode === document); // true
(document.documentElement.parentElement === document); // false
由于<html>
element(document.documentElement
)没有作为元素的父元素,因此parentElement
is null
。(还有其他可能性较小的情况parentElement
可能是null
,但您可能永远都不会遇到它们。)
在Internet Explorer中,
parentElement
未定义SVG元素,而已parentNode
定义。