Как удалить определенные c элементы с помощью removeChild - PullRequest
0 голосов
/ 03 августа 2020

создание блоков загрузки с помощью следующего кода:

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, где я не могу создать правильную ссылку на элемент с идентификатором «zChunk-13». Я проверил, сгенерированный элемент имеет правильный идентификатор. Я предполагаю, что это как-то связано с математикой вложенности в getElementById, вложенном в removechild, даже если бы я мог заставить его работать с другим синтаксисом, я бы предпочел что-то более чистое. Какие-нибудь исправления?

1 Ответ

0 голосов
/ 03 августа 2020

getElementById() - это метод объекта document. Следовательно, вам следует вместо этого набрать document.getElementById().

...