DOM parentNode和parentElement之间的区别

JavaScript

蛋蛋樱

2020-03-13

有人可以用尽可能简单的方式解释我吗,经典DOM parentNode和Firefox 9 parentElement中新引入的有什么区别?

第1374篇《DOM parentNode和parentElement之间的区别》来自Winter(https://github.com/aiyld/aiyld.github.io)的站点

3个回答
YLD 2020.03.13

在Internet Explorer中,parentElement未定义SVG元素,而已parentNode定义。

LEY小卤蛋 2020.03.13

还有一个区别,但仅在Internet Explorer中。当您混合使用HTML和SVG时会发生这种情况。如果父级是这两个的“其他”,则.parentNode给出父级,而.parentElement给出未定义。

TonyJinJin泡芙 2020.03.13

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,但您可能永远都不会遇到它们。)

问题类别

JavaScript Ckeditor Python Webpack TypeScript Vue.js React.js ExpressJS KoaJS CSS Node.js HTML Django 单元测试 PHP Asp.net jQuery Bootstrap IOS Android