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