为什么在`<;时无法动态更新HTML DOM结构;!DOCTYPE html>;`具体是什么?

为什么在`<;时无法动态更新HTML DOM结构;!DOCTYPE html>;`具体是什么?,html,Html,我有以下HTML代码: <!DOCTYPE html> <html> <head> <title>Clear a Timer</title> <meta charset="utf-8" /> <script> var theTimer, xPosition = 0, theImage; function doTimer() { th

我有以下HTML代码:

<!DOCTYPE html>
<html>
<head>
    <title>Clear a Timer</title>
    <meta charset="utf-8" />
    <script>
        var theTimer, xPosition = 0, theImage;

        function doTimer() {
            theImage = document.getElementById("courseraLogo");
            xPosition = xPosition + 1;
            theImage.style.left = xPosition;
        }
    </script>
</head>
<body onload="theTimer = setInterval(doTimer, 50)">
    <img src="../img/coursera.png" id="courseraLogo"
         style="position:absolute; left:0">
    <button onclick="clearTimeout(theTimer);">
        Stop!
    </button>
</body>
</html>

清除计时器
时间变量,xPosition=0,图像;
函数doTimer(){
theImage=document.getElementById(“courseraLogo”);
xPosition=xPosition+1;
theImage.style.left=xPosition;
}
停止

代码应该以50毫秒的间隔从左向右移动图像。如果指定
DOCTYPE
标记,则不起作用:图像不移动。为什么会这样?是否存在与HTML版本相关的兼容性问题?或者我是否需要使用类似的方法来设置与HTML5兼容的
setInterval

在设置
样式时需要包括单位。左

theImage.style.left=xPosition+“px”

严格地说,这不是HTML5。只有在完全不包含doctype的情况下,省略单位才有效:包含诸如
之类的HTML4 doctype也会导致脚本失败,除非包含单位


(我在当前版本的Safari、Chrome和Firefox操作系统X上测试了这一点;这三个版本的表现完全相同。)

设置
样式时需要包含单位。左

theImage.style.left=xPosition+“px”

严格地说,这不是HTML5。只有在完全不包含doctype的情况下,省略单位才有效:包含诸如
之类的HTML4 doctype也会导致脚本失败,除非包含单位


(我在当前版本的Safari、Chrome和Firefox操作系统X上测试了这一点;这三个版本的表现完全相同。)

控制台中有错误吗?@ochi控制台中没有任何错误。我已经更新了行
theImage.style.left=xPosition+“px”
一起工作。啊!给你。。。。简单的。。。将其作为答案发布并标记:):)HTML5更严格!控制台中有错误吗?@ochi控制台中没有任何错误。我已经更新了行
theImage.style.left=xPosition+“px”
一起工作。啊!给你。。。。简单的。。。将其作为答案发布并标记:):)HTML5更严格!我认为HTML5对单位更严格。感谢解释:我花了一个多小时试图检测错误/不一致性。我认为HTML5对单位更严格。感谢解释:我花了一个多小时试图检测错误/不一致性。