Container.id vs getElementById - 奇怪的错误

时间:2013-08-15 16:30:05

标签: javascript easeljs createjs

我有一个我的RPG游戏的功能,它模拟抓取创建js容器对象中的元素,方法是将其从容器中移除(从而将其从舞台上移除)。

function grabIt(NPC_id, index) {
    console.log(ContainerOfAnimals.children[index].id);
    var childToRemove = document.getElementById(ContainerOfAnimals.children[index]);
    console.log(childToRemove);
    ContainerOfAnimals.removeChild(childToRemove);
}

第一个console.log提供了孩子的正确ID:21

但是当我想使用getElementById抓取子容器对象时,孩子是null

为什么会这样?

1 个答案:

答案 0 :(得分:3)

EaselJS元素具有id属性,但没有DOM元素。它们是纯JavaScript对象(DisplayObject的子类的实例)。并且它们不会添加到DOM树中。

因此,您无法使用document.getElementById获取它们。

要删除元素,只需执行

即可
 ContainerOfAnimals.removeChild(ContainerOfAnimals.children[index]);

或(faster

 ContainerOfAnimals.removeChildAt(index);