DOM parentNode 和 parentElement 之间的区别

2022-08-29 22:38:13

有人可以用简单的术语解释一下,经典的DOM parentNode和Firefox 9中新引入的parentElement有什么区别吗?


答案 1

parentElement是Firefox 9和DOM4的新功能,但它已经存在于所有其他主流浏览器中多年了。

在大多数情况下,它与 相同。唯一的区别是当节点不是元素时。如果是这样,则为 。parentNodeparentNodeparentElementnull

例如:

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>document.documentElementparentElementnullparentElementnull


答案 2

在 Internet Explorer 中,对于 SVG 元素未定义,而 定义了。parentElementparentNode