使用字符串变量作为对象字段

时间:2010-11-02 09:11:36

标签: javascript jquery properties

我需要选择一个属性来制作动画,然后做动画。

代码应如下所示:

var prop = "background-color";
switch( val )
{
   case 1: prop = "color";
   case 2: prop = "border-color";
   // ...
}
item.animate( {prop: "#00FF00"}, 1000 );

JavaScript抱怨使用“prop”变量。

当我说的时候

item.animate( {"color": "#00FF00"}, 1000 );

一切都很好。

我认为,期望一个常量作为对象属性声明。

我如何在运行时确定它?

2 个答案:

答案 0 :(得分:5)

这些是等价的:

// prop is a literal string here,
// not a variable
{prop: "#00FF00"}

{"prop": "#00FF00"}
你可能需要这样做:

var obj = {};
obj[prop]="#0000ff";
item.animate( obj, 1000 );

答案 1 :(得分:2)

是的,你是对的,JavaScript期望一个标识符作为对象文字中的属性名称。您必须创建一个对象并使用方括号表示法分配属性。

var opts = {};
opts[prop] = "#00FF00";
item.animate(opts, 1000);