如果我使用 创建一个元素document.createElement()
,它的父元素是什么?是身体吗?对于这样一个基本问题,我很抱歉,但我尝试使用 JavaScript 来查找父对象,它返回一个对象,不太确定这个对象。
谢谢
如果我使用 创建一个元素document.createElement()
,它的父元素是什么?是身体吗?对于这样一个基本问题,我很抱歉,但我尝试使用 JavaScript 来查找父对象,它返回一个对象,不太确定这个对象。
谢谢
该元素是在内存中创建的,并且还没有任何父元素。
当您使用或类似的方法将元素放置在 DOM 中appendChild()
时,它将有一个父元素。
null
如果您尝试访问一个不存在的元素,并且该元素包括仅存在于内存中的元素的父元素,JavaScript 将返回。
要访问该元素,请将其分配给一个变量 f.ex:
var elem = document.createElement('div'); // elem is now the element reference
您不需要显式删除尚未附加到 DOM 的元素,因为它们只存在于内存中,一旦不再被引用就会被清除。
除非您将其附加到某物上,否则它什么都不是(null
)。
> x = document.createElement("div");
<div></div>
> x.parentNode
null
> document.body.appendChild(x);
<div></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
。