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';