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