Javascript无法读取属性';parentElement';空的

Javascript无法读取属性';parentElement';空的,javascript,html,Javascript,Html,我在论坛上搜索了调用getElementById时为什么我的img是null,并且我已经将脚本移到img下面,但是我仍然得到图像是null的错误 这是我的密码: <!DOCTYPE html> <html> <head> </head> <body> <img id="irimg" src="ir.bmp" alt="Video Stream" style="width:640px;height:480px;"> <s

我在论坛上搜索了调用
getElementById
时为什么我的img是
null
,并且我已经将脚本移到img下面,但是我仍然得到图像是
null
的错误

这是我的密码:

<!DOCTYPE html>
<html>
<head>
</head>
<body>
<img id="irimg" src="ir.bmp" alt="Video Stream" style="width:640px;height:480px;">
<script type="text/javascript">
function loadNextImage() {
    // An image element for loading our next image
    var ourImage = new Image();

    // Setup the event handlers before setting the source
    ourImage.onload = function() {
        // Request the next frame
        requestAnimationFrame(loadNextImage);

        // Swap out the image element on the page with the new one
        var oldImage = document.getElementById('irimg');
        oldImage.parentElement.insertBefore(ourImage, oldImage);
        oldImage.parentElement.removeChild(oldImage);
    };

    ourImage.onerror = function(){
        // Something went wrong with this frame. Skip it and move on.
        requestAnimationFrame(loadNextImage);
    }

    // Finally load the image
    ourImage.src = "ir.bmp?" + new Date().getTime();
};

requestAnimationFrame(loadNextImage);
</script>
</body>
</html>
Chrome给出的错误是
未捕获的TypeError:无法读取null的属性“parentElement”


如果能帮助我理解它为什么为空,我将不胜感激。谢谢。

您正在删除具有该ID的图像,下次代码通过时,将找不到任何具有该ID的图像

您需要在要替换旧图像的新图像上设置该ID

像这样

// An image element for loading our next image
var ourImage = new Image();
ourImage.id='irimg';

请参阅:

使用Chome的调试模式(F12),在
oldImage.parentElement.insertBefore(ourImage,oldImage)行上设置断点
,将光标移动到
oldImage
的顶部,然后查看显示的内容(工具提示样式弹出)。可能是脚本在页面完全加载之前正在运行,这意味着iamge尚未呈现。通常,如果您有一个访问DOM元素的脚本,那么在尝试访问它们之前,您希望确保它们已首先加载到DOM中。在加载页面后运行脚本,而不是立即使用@Jayce444作为可能的源代码。按照我的建议进行锻炼可能会给你一些提示。
// An image element for loading our next image
var ourImage = new Image();
ourImage.id='irimg';