0

Just now my code is:

data = {'field_name':"some value",'name':$(this).val()};

However, I'd like to change the name key so it is dynamic, e.g something like:

var name = $(this).attr('id');
data = {'field_name':"some value",name:$(this).val()};

Is that possible?

Corbin
  • 32,222
  • 6
  • 66
  • 77
Sheldon
  • 8,669
  • 17
  • 56
  • 91
  • You want properties, see [`Object.defineProperty()`](https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Object/defineProperty). – Dan D. Mar 05 '13 at 00:05

3 Answers3

2

To do this use the indexer syntax

var data = { 'field_name': "some value" };
data[name] = $(this).val();
JaredPar
  • 703,665
  • 143
  • 1,211
  • 1,438
2

jQuery is not required for this:

data = {'field_name':"some value"};
data[this.id] = this.value;
Niet the Dark Absol
  • 311,322
  • 76
  • 447
  • 566
0

This should do the trick:

var val = data.name;
delete data.name;
data[name] = val; //name is the identifier here
Aditya Manohar
  • 2,064
  • 1
  • 16
  • 20