1

如果我使用 创建一个元素document.createElement(),它的父元素是什么?是身体吗?对于这样一个基本问题,我很抱歉,但我尝试使用 JavaScript 来查找父对象,它返回一个对象,不太确定这个对象。

谢谢

4

2 回答 2

4

该元素是在内存中创建的,并且还没有任何父元素。

当您使用或类似的方法将元素放置在 DOM 中appendChild()时,它将有一个父元素。

null如果您尝试访问一个不存在的元素,并且该元素包括仅存在于内存中的元素的父元素,JavaScript 将返回。

要访问该元素,请将其分配给一个变量 f.ex:

var elem = document.createElement('div'); // elem is now the element reference

您不需要显式删除尚未附加到 DOM 的元素,因为它们只存在于内存中,一旦不再被引用就会被清除。

于 2013-07-27T10:43:03.963 回答
2

除非您将其附加到某物上,否则它什么都不是(null)。

> x = document.createElement("div");
<div>​&lt;/div>​
> x.parentNode
null
> document.body.appendChild(x); 
<div>​&lt;/div>​
> x.parentNode
<body></body>

关于您的评论,给定一个元素数组[x, y, z],可能会或不会插入到 DOM 中,您可以按如下方式删除 DOM 中的元素;

var els = [x, y, z];

for (var i=0;i<els.length;i++) {
    if (els[i].parentNode) {
        els[i].parentNode.removeChild(els[i]);
    }
}

...因为只有 DOM 中的元素才会有真值parentNode

于 2013-07-27T10:43:14.027 回答