Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/72.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2008/2.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
Jquery 变量在对象中不起作用_Jquery - Fatal编程技术网

Jquery 变量在对象中不起作用

Jquery 变量在对象中不起作用,jquery,Jquery,所以我想给body标记设置几个变量(数据集),但是当我将它们组合到一个对象中时,变量名就不起作用了 //代码 var1 = 'data-var1' var2 = 'data-var2' var3 = 'data-var3' $('body').attr({ var1 : 1, var2 : 2, var3 : 3 }); //结果之后 <body var1="1" var2="2" var3="3"> 不能为此使用对象文字,因为属性名称是

所以我想给body标记设置几个变量(数据集),但是当我将它们组合到一个对象中时,变量名就不起作用了

//代码

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

$('body').attr({
   var1 : 1,
   var2 : 2,
   var3 : 3
});
//结果之后

<body var1="1" var2="2" var3="3">           

不能为此使用对象文字,因为属性名称是按字面意义处理的。使用两个参数形式:

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

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

如果您希望实现该结果,则需要重构代码以:

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

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

$(body).attr(attributes);
var-var1=“data-var1”;
...
var属性={};

属性[var1]=1;//对象文字中的属性名称是文字,而不是变量。使用JavaScript的对象表示法,
{foo:'bar'}
{'foo':'bar'}
是完全相同的对象。请尝试
{“data-var1”:1,…}
。还可以查看jQuery的
.data()
来处理数据属性。