通过 Id 移动图像的 JavaScript 简单错误

标签 javascript

在下面的代码中,我创建了一个 ID 为“devildead”的新图像,在我尝试使用它的 ID 移动该图像后,出现了这个错误:

Uncaught TypeError: Cannot read property 'top' of null ).

我应该更改什么才能使其正常工作?

o = document.createElement('img');
o.src = "img/birddead.png";
box.appendChild(o);
o.setAttribute("id", "devildead");
o.style.left = leftbird;
o.style.top = topbird;

// Function for moving the dead bird
var delay = 1;
var top = document.getElementById("devildead");

//Here I got the error
var currentTop = parseInt(getComputedStyle(devildead).top, 10);

// Start
setTimeout(move, delay);
function move(){
    if (currentTop <= 480) {
      currentTop += 2;
      top.style.top = currentTop + "px";
      setTimeout(move, delay);
    }
}

最佳答案

我猜这是导致错误的行

var currentTop = parseInt(getComputedStyle(devildead).top, 10);   
                                     //               ^^ here

由于您没有 devildead 变量,出于某种原因,您将变量命名为 top

var currentTop = parseInt(getComputedStyle(top).top, 10);  

或者更好的是,不要将元素放在名为 top 的变量中,因为它会引起混淆

var devildead = document.getElementById("devildead");

var currentTop = parseInt(getComputedStyle(devildead).top, 10); 

关于通过 Id 移动图像的 JavaScript 简单错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21067946/

相关文章:

php - JS/php 每分钟添加一次

javascript - JavascriptExecutor的executeScript()方法的返回类型是什么?

javascript - 焦点不适用于输入字段 Jquery

javascript - 使用 Cookie 保存 JQuery 切换状态

javascript - 拖放排序元素后创建重复项

javascript - Chrome控制台清除赋值和变量

javascript - 如何解决 TSX 中的类型 'void' 无法分配给类型 'ReactNode' 问题

javascript - React Tiny Virtual List - 滚动到底部?

javascript - 有没有办法让事件总时间始终为24小时

javascript - 如何使用 JavaScript(最好使用 MooTools 1.2)获取文件的大小?