wenn someprop
und someotherprop
sind Variablen undefiniert, Richard D's Antwort richtig ist, wenn sie Sind hardcodierte Strings, könnten Sie Ihren Code wie folgt schreiben:
var data = {someprop:{someotherprop: 'value'}};
wenn jedoch sind sie in Variablen gespeicherten Werten, und Sie wirklich - wirklich wollen, alles in eine einzige Zeile stopfen, versuchen, etwas wie folgt aus:
var data = {window.someprop : {window.someotherprop: 'value'}};
wo Fenster durch ersetzt werden kann jedes Objekt, wenn der someprop
Wert selbst eine Eigenschaft eines Objekts ist:
var data = {someForm.name : { formElement.name : formElement.value}};
Oder jQuery Objekte, da Ihr Tag schlagen Sie mit jQuery:
var data= {$('#formId').attr('name'):{$('#formSelect').attr('name'): $('#formSelect').val()}};
Hinweis: Das jQuery Beispiel ist nicht zu empfehlen, da die ID-Selektor zweimal auf dem gleichen Element verwendet wird. jQuery wird den DOM-Baum zweimal scannen, so dass Sie Ihr #formSelect
Element besser irgendwo in einer Variablen speichern können.
Ich denke, das Problem ist, dass Sie versuchen, eine Eigenschaft innerhalb eines Objekts, das selbst eine Eigenschaft ist, die noch nicht existiert. Was passiert, wenn Sie versuchen, 'someprop 'in einer Zeile zu erstellen ** und ** dann' someotherprop' zu setzen? –
bitte den tatsächlichen Code anzeigen. Auch das Festlegen einer Eigenschaft in einer noch nicht vorhandenen Eigenschaft funktioniert nicht. Sie müssen zunächst 'someprop' setzen –