Javascript 为什么克隆人在移动而不是原创?

Javascript 为什么克隆人在移动而不是原创?,javascript,dom,addeventlistener,Javascript,Dom,Addeventlistener,如果我点击该框,它将收到类“.selected”。 如果我然后按“x”键,它将创建自身的克隆。 如果按键盘上的“向上”箭头,克隆将向上移动。但是为什么原来的正方形没有向上移动呢 body.addEventListener("keydown", function (event) { if (event.keyCode === 38) { // up var allSelected = document.querySelectorAll(".se

如果我点击该框,它将收到类“.selected”。 如果我然后按“x”键,它将创建自身的克隆。 如果按键盘上的“向上”箭头,克隆将向上移动。但是为什么原来的正方形没有向上移动呢

body.addEventListener("keydown", function (event) {
    if (event.keyCode === 38) { // up
        var allSelected = document.querySelectorAll(".selected");
        for (var i = 0; i < allSelected.length; i++) {
            var currentPos = allSelected[i].style.top;
            var newPos = currentPos.slice(0, -2) // remove px
            newPos = parseInt(newPos); // make int
            newPos -= 30;
            newPos = newPos + "px";
            allSelected[i].style.top = newPos;
        }
    }
});
body.addEventListener(“按键”,函数(事件){
如果(event.keyCode==38){//up
var allSelected=document.querySelectorAll(“.selected”);
对于(变量i=0;i
您的原始元素没有
样式。因此,top
和newPos是“NaNpx”

body.addEventListener("keydown", function (event) {
    if (event.keyCode === 38) { // up
        var allSelected = document.querySelectorAll(".selected");
        for (var i = 0; i < allSelected.length; i++) {
            var currentPos = allSelected[i].style.top;

             if(!currentPos) {
                currentPos = allSelected[i].offsetTop + 'px';
             }

            var newPos = currentPos.slice(0, -2) // remove px
            newPos = parseInt(newPos); // make int
            newPos -= 30;
            newPos = newPos + "px";
            allSelected[i].style.top = newPos;
        }
    }
});
body.addEventListener(“按键”,函数(事件){
如果(event.keyCode==38){//up
var allSelected=document.querySelectorAll(“.selected”);
对于(变量i=0;i
我尝试了代码笔,没有任何东西向上移动。使用
var currentPos=getComputedStyle(allSelected[I])。top而不是
var currentPos=allSelected[i].style.top.style.top
将是
未定义的