我的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

为什么是这样?

最佳答案

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

因此,您不能使用document.getElementById来获得它们。

要删除您的元素,只需执行

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


或(faster

 ContainerOfAnimals.removeChildAt(index);

10-01 13:48