我有一个我的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
。
为什么会这样?
答案 0 :(得分:3)
EaselJS元素具有id
属性,但没有DOM元素。它们是纯JavaScript对象(DisplayObject
的子类的实例)。并且它们不会添加到DOM树中。
因此,您无法使用document.getElementById
获取它们。
要删除元素,只需执行
即可 ContainerOfAnimals.removeChild(ContainerOfAnimals.children[index]);
或(faster)
ContainerOfAnimals.removeChildAt(index);