将变量中的字符串作为javascript对象文字中的键传递

prg*_*rmr 3 javascript jquery json

我怎样才能做到这一点?

objPrefix = btn.attr('data-objprefix'); //<button data-objPrefix="foo">
var sendData =  {objPrefix : {"bar":"ccccc"}};
Run Code Online (Sandbox Code Playgroud)

我想要输出

{"foo" : {"bar":"ccccc"}};
Run Code Online (Sandbox Code Playgroud)

但事实确实如此

{"objPrefix" : {"bar":"ccccc"}}
Run Code Online (Sandbox Code Playgroud)

PSL*_*PSL 8

使用文字表示法时,objPrefix它被视为键名本身,而不是变量的值objPrefix,而是尝试使用括号表示法根据变量值设置对象的属性名称.所以试试这样:

var sendData = {};
sendData[objPrefix] = {"bar":"ccccc"};
Run Code Online (Sandbox Code Playgroud)

你也可以使用jquery data-api来获取data-attribute的值,即

objPrefix  = btn.data('objprefix')
Run Code Online (Sandbox Code Playgroud)