有人可以用尽可能简单的方式解释我吗,经典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)没有作为元素的父元素,因此parentElementis null。(还有其他可能性较小的情况parentElement可能是null,但您可能永远都不会遇到它们。)
在Internet Explorer中,
parentElement未定义SVG元素,而已parentNode定义。