使用document.createElement()创建元素时的父级是什么?

时间:2013-07-27 10:41:53

标签: javascript

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

由于

2 个答案:

答案 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