DOM parentNode 和 parentElement 的区别

新手上路,请多包涵

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

原文由 shabunc 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1k
2 个回答

parentElement 是 Firefox 9 和 DOM4 的新内容,但它已经存在于所有其他主要浏览器中很长时间了。

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

举个例子:

 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

Since the <html> element ( document.documentElement ) doesn’t have a parent that is an element, parentElement is null . (还有其他更不可能的情况,其中 parentElement 可能是 null ,但你可能永远不会遇到它们。)

原文由 lonesomeday 发布,翻译遵循 CC BY-SA 4.0 许可协议

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

原文由 speedplane 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
logo
Stack Overflow 翻译
子站问答
访问
宣传栏