[javascript] DOM parentNode和parentElement之間的區別


Answers

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

Question

有人能夠以盡可能簡單的方式向我解釋,經典的DOM parentNode與Firefox 9中新引入的parentElement什麼區別




使用.parentElement ,只要不使用文檔片段,就不會出錯。

如果你使用文檔片段,那麼你需要.parentNode

let div = document.createDocumentFragment().appendChild(document.createElement('div'));
div.parentElement // null
div.parentNode // document fragment

也:

let div = document.getElementById('t').content.firstChild
div.parentElement // null
div.parentNode // document fragment
<template id=t><div></div></template>

顯然, <html>.parentNode鏈接到Document 。 這應該被認為是一個決定因子,因為文件不是節點,因為節點被定義為可被文件包含,並且文件不能被文件包含。






Links