提问者:小点点

使用变量作为名称向JavaScript对象添加属性?


我正在使用jQuery从DOM中提取项,并希望使用DOM元素的设置对象的属性。

const obj = {}

jQuery(itemsFromDom).each(function() {
  const element = jQuery(this)
  const name = element.attr('id')
  const value = element.attr('value')

  // Here is the problem
  obj.name = value
})

如果包含一个为“myId”的元素,我希望具有一个名为“myId”的属性。上面给出了

如何使用JavaScript使用变量命名对象的属性?


共3个答案

匿名用户

您可以使用这种等效语法:

obj[name] = value

匿名用户

使用ECMAScript2015,您可以直接在对象声明中使用括号表示法:

var obj = {
  [key]: value
}

其中可以是返回值的任何类型的表达式(例如变量):

var obj = {
  ['hello']: 'World',
  [x + 2]: 42,
  [someObject.getId()]: someVar
}

匿名用户

你甚至可以像这样列出一个对象列表

var feeTypeList = [];
$('#feeTypeTable > tbody > tr').each(function (i, el) {
    var feeType = {};

    var $ID = $(this).find("input[id^=txtFeeType]").attr('id');

    feeType["feeTypeID"] = $('#ddlTerm').val();
    feeType["feeTypeName"] = $('#ddlProgram').val();
    feeType["feeTypeDescription"] = $('#ddlBatch').val();

    feeTypeList.push(feeType);
});

相关问题