Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/402.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 传递函数参数以更改div样式属性_Javascript - Fatal编程技术网

Javascript 传递函数参数以更改div样式属性

Javascript 传递函数参数以更改div样式属性,javascript,Javascript,我一直在试图解决这个问题:我想传递一个函数参数来选择一个div,这样我就可以用一个间隔来更改style.top的位置 var yPos = 0; var divOne = document.getElementById("div1"); var divTwo = document.getElementById("div2"); var divThree = document.getElementById("div3"); ..... function jump(which){ yPos

我一直在试图解决这个问题:我想传递一个函数参数来选择一个div,这样我就可以用一个间隔来更改style.top的位置

var yPos = 0;
var divOne = document.getElementById("div1");
var divTwo = document.getElementById("div2");
var divThree = document.getElementById("div3");
.....

function jump(which){
    yPos++;
    (which).style.top = yPos + "px";
    var jumpTimeOut = setTimeout(jump,100,which);
    if(yPos > 500){
    clearTimeout(jumpTimeOut);
    }
}

jump("divOne");
我可以为每个div变量使用switch语句,但是程序中有很多div,所以我想知道是否有方法将div名称与函数参数连接起来。要说我得到的是不能用当前代码更改NULL的属性样式

谢谢你的帮助

---->>我找到了一个解决方案,我将div名称字符串“div1”作为参数传递到函数中,因此我可以使用一个内部变量再次获取div:

var divOne = document.getElementById("div1");
var divTwo = document.getElementById("div2");

function jump(which){
    var jumpingDiv = document.getElementById(which);
    yPos++;
    jumpingDiv.style.top = yPos + "px";
    var jumpTimeOut = setTimeout(jump,100,which);
        if(yPos > 500){
        clearTimeout(jumpTimeOut);
    }
}

jump("div1");

我认为这是一个奇怪的解决办法,但它确实有效。。呵呵

我在控制台中发现此错误:`Uncaught ReferenceError:yPos未定义`Ohh是的,对不起,yPos以前已定义,我忘记添加它。为什么要将变量名作为字符串传递?我认为
jump(“divOne”)这应该是
跳转(divOne)。或者这是一个输入错误?那么很可能
document.getElementById(“div1”)
已经导致了
null
,因为您在DOM元素存在之前执行了该代码。您需要将正确的ID传递给
document.getElementById()
;它不看JavaScript变量。因此,您必须始终传递
div1
(ID),而不是
divOne
(变量名)。