【发布时间】:2014-12-19 17:37:47
【问题描述】:
我在使 removeChild() 工作时遇到问题。我收到“NotFoundError:找不到节点 image_div.parentNode.removeChild(img);”错误
这是我的代码:
<div id="imagesframe"> </div>
<script>
images_array = [image1.jpg,image2.jpg,image3.jpg,image4.jpg,image5.jpg];
var image_div = document.getElementById('imagesframe');
for(var i=0 ; i<images_array.length ; i++) {
var img = new Image();
img.src = images_array[i];
img.style.width = '500px';
img.style.height = '500px';
setTimeout(function(){image_div.appendChild(img)},1000);
image_div.parentNode.removeChild(img);
}
</script>
最后一行: image_div.parentNode.removeChild(img); 导致问题。
这可能是什么原因造成的?
【问题讨论】:
-
为什么要从父级的父级中查找图像?
img.parentNode.removeChild(img)会更好。但是,在超时到期之前无法找到img。也许你误解了setTimeout,它不会延迟其余代码的执行,它只会延迟调用参数中传递的函数。 -
我什至试过 image_div.removeChild(img);但这不起作用。那么这里有什么用呢?好的,现在我知道我必须修复我的 setTimeout () 函数,这现在更复杂了。看来我得想出另一种解决方案了。
-
请解释一下您实际上想要做什么?显示一张图片第二张,然后显示下一张等等?
-
是的,我正在尝试显示一个又一个图像,其中第一个图像消失,下一个图像显示在同一位置,对于循环中的数组中的所有图像。
标签: javascript html