猿问

DOM parentNode和parentElement之间的区别

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



慕盖茨4494581
浏览 1768回答 3
3回答

忽然笑

parentElement 是Firefox 9和DOM4的新功能,但是它已经存在于所有其他主流浏览器中已有很长时间了。在大多数情况下,它与相同parentNode。唯一的区别是节点parentNode不是元素时。如果是,parentElement则为null。举个例子:document.body.parentNode; // the <html> elementdocument.body.parentElement; // the <html> elementdocument.documentElement.parentNode; // the document nodedocument.documentElement.parentElement; // null(document.documentElement.parentNode === document);&nbsp; // true(document.documentElement.parentElement === document);&nbsp; // false由于<html>元素(document.documentElement)没有作为元素的父元素,因此parentElement为null。(还有其他更不可能的情况,parentElement可能是null,但您可能永远不会遇到它们。)

猛跑小猪

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

PIPIONE

使用.parentElement,只要不使用文档片段,就不会出错。如果使用文档片段,则需要.parentNode:let div = document.createDocumentFragment().appendChild(document.createElement('div'));div.parentElement // nulldiv.parentNode // document fragment也:let div = document.getElementById('t').content.firstChilddiv.parentElement // nulldiv.parentNode // document fragment<template id="t"><div></div></template>显然,该文档<html>的.parentNode链接。由于文档不是节点,因此应将其视为决策重点,因为节点被定义为可包含在文档中,而文档不能包含在文档中。
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答