getcomputedstyle对象javascript问题

getcomputedstyle对象javascript问题,javascript,Javascript,我对getComputedStyle方法有问题。我试图在单击时获取元素的左属性和上属性 我可以访问“left”属性,但“top”属性返回的是对象而不是字符串 我在元素数组中循环,附加两个事件侦听器。 单击事件触发后,当我按下目标div上的向下键时,我可以从左向右移动,但向上/向下不做任何操作。顶部样式返回窗口对象 我还在代码的前面部分中定义了左侧和顶部的css声明 任何帮助都将不胜感激 Object.keys(source_boxes).forEach(function(key){

我对getComputedStyle方法有问题。我试图在单击时获取元素的左属性和上属性

我可以访问“left”属性,但“top”属性返回的是对象而不是字符串

我在元素数组中循环,附加两个事件侦听器。 单击事件触发后,当我按下目标div上的向下键时,我可以从左向右移动,但向上/向下不做任何操作。顶部样式返回窗口对象

我还在代码的前面部分中定义了左侧和顶部的css声明

任何帮助都将不胜感激

Object.keys(source_boxes).forEach(function(key){

        source_boxes[key].addEventListener('click',function(){
            clicked = true;
            elem = source_boxes[key];
        });

        document.addEventListener('keydown',function(e){
            e.preventDefault();
            if(clicked == true){
                css = getComputedStyle(elem);

                top =parseInt(css['top']);
                left =parseInt(css['left']);

                if(e.code ==="ArrowUp"){
                    top = top -5;
                    elem.style.top = top +'px';
                }else if(e.code ==="ArrowDown"){
                    top = top +5;
                    elem.style.top = top +'px';
                }else if(e.code ==="ArrowLeft"){
                    left = left -5;
                    elem.style.left = left +'px';
                }else if(e.code ==="ArrowRight"){
                    left = left +5;
                    elem.style.left = left +'px';
                }
            }



        });
    });

top
如果没有
var
const
let
关键字将映射到隐式全局
窗口。top
是且不能设置的。应避免使用隐式声明的全局变量。在您的
css
之前添加
var
let
const
top
left
变量同样,如何调试从
css['top']
css['left']
获得的值?感谢您的正确,我更改了变量命名约定,似乎已经修复了它。我已经调试过了,css['top']出于某种原因一直返回一个对象。根据您的建议,我更改了变量名并使用了var,现在它正在工作。非常感谢!