变量在对象中不起作用

时间:2014-06-27 22:05:49

标签: jquery

所以我想将一些变量(数据集)设置为body标签,但是当我将它们组合到一个对象中时,var名称不起作用。

//代码

var1 = 'data-var1'
var2 = 'data-var2'
var3 = 'data-var3'

$('body').attr({
   var1 : 1,
   var2 : 2,
   var3 : 3
});

//

之后的结果
<body var1="1" var2="2" var3="3">           

2 个答案:

答案 0 :(得分:1)

正如您自己的问题中的一些注释所指出的,对象属性声明的左侧部分是整个属性的名称,不能是变量。

如果要实现该结果,则需要将代码重构为:

var var1 = "data-var1";
...

var attributes = {};
attributes[var1] = 1; // <-- You can use variables to add properties
                      // after object literal declaration!
...

$(body).attr(attributes);

答案 1 :(得分:0)

您不能使用对象文字,因为属性名称是按字面处理的。使用双参数形式:

$('body').attr(var1, 1).attr(var2, 2).attr(var3, 3);