我怎样才能做到这一点?

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

而且我希望输出是
{"foo" : {"bar":"ccccc"}};

但它是
{"objPrefix" : {"bar":"ccccc"}}

最佳答案

当您使用文字符号时 objPrefix 被视为键名本身而不是变量 objPrefix 的值,而是尝试使用 bracket notation 根据变量值设置对象的属性名称。所以试试这个方法:

var sendData = {};
sendData[objPrefix] = {"bar":"ccccc"};

你也可以事实上使用 jquery data-api 来获取 data-attribute 的值,即
objPrefix  = btn.data('objprefix')

关于javascript - 将变量中的字符串作为javascript对象文字中的键传递,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/19966070/

10-12 00:03