如何使用 removeChild 删除特定元素

How to remove specific elements using the removeChild

使用以下代码生成加载块:

function loadChunk (ndx){
            var passId = "zChunk" + ndx;
            var zPos = ndx * 24;
            var addEl = document.createElement('a-entity');
            addEl.setAttribute("id", passId);
            addEl.setAttribute("gltf-model", "#bound");
            addEl.object3D.position.set(0, 0, zPos);
            sceneEl.appendChild(addEl);
        }

现在我正在尝试移除离我太远的块:

        function stepLoad(cPos){
        
            if (cPos / 24 - loadId < 0.5){
            return;
            }
            else if(cPos > loadId){
            loadId ++;
            loadChunk(loadId + 12);
            console.log('load');
            sceneEl.removeChild(getElementById("zChunk" + (loadId -13)));
            //retrieve chunk with (loadId - 12) and unload it
            }
            else{
            return;
            }
        };

cPos 是相机位置。

loadId 正在跟踪我当前加载的内容。

所以现在忽略没有在另一个方向加载和卸载的代码,这将在 else 语句中。现在我正在查看 sceneEl.removechild,我无法在其中生成对 ID 为“zChunk-13”的元素的正确引用。我已经检查过,生成的元素具有正确的 ID。我猜它与嵌套在 removechild 中的 getElementById 中的嵌套数学有关,即使我可以让它使用不同的语法,我也更喜欢更干净的东西。有任何修复吗?

getElementById()document 对象的一个​​方法。因此,您应该改为调用 document.getElementById()