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
  • 33,060
  • 6
  • 68
  • 78
Sheldon
  • 9,639
  • 20
  • 59
  • 96
  • 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
  • 733,204
  • 149
  • 1,241
  • 1,454
2

jQuery is not required for this:

data = {'field_name':"some value"};
data[this.id] = this.value;
Niet the Dark Absol
  • 320,036
  • 81
  • 464
  • 592
0

This should do the trick:

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