为什么这段代码不起作用? (变量对象键和值)

时间:2016-07-04 19:52:32

标签: javascript jquery

var elems = [];
var at1 = $(indx).attr('class'); //or any string
var at2 = $(indx).html(); //or any string
elems.push({
  at1: at2
});

我得到的输出是: this 为什么我不能将密钥设置为字符串?

1 个答案:

答案 0 :(得分:4)

创建对象的方式,键将按字面解释为"at1"字符串。在你的情况下,你需要稍微详细一点:

var at1 = $(indx).attr('class');
var at2 = $(indx).html();

var obj = {};
obj[at1] = at2;

elems.push(obj);

...或使用ES2015 computed property name

var at1 = $(indx).attr('class');
var at2 = $(indx).html();

elems.push({
  [at1]: at2
});