我正在尝试动态制作JSON,但是当我执行以下操作时:
var jsonVar = {
"section": {}
}
var elementsStoragePrefix = "_app_",
elementName = elementsStoragePrefix + "some_name";
$.extend(jsonVar .section, { elementName: "<option>This is a text</option>"});
我得到的键是elementName而不是_app_some_name
jsonVar.section =>
Object
elementName: "<option>This is a text</option>"
__proto__: Object
最佳答案
创建对象文字时,无需引用属性名称,因此在示例中,elementName
将按字面意义使用。值得庆幸的是,您可以使用方括号语法(也可以将其拼写):
var extendObject = {};
extendObject[elementName] = '<option>Foobar</option>';
$.extend(jsonVal.section, extendObject);
//or, to use brackets all the way:
$.extend(jsonVal['section'], extendObject);
那应该为您解决问题