我用jQuery将项目从DOM中拉出来,并希望使用DOM元素的id设置对象上的属性。

例子

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
})

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

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


当前回答

与主题相关,但不是专门针对jquery的。我在ec6 react项目中使用了这个,可能会帮助到一些人:

this.setState({ [`${name}`]: value}, () => {
      console.log("State updated: ", JSON.stringify(this.state[name]));
    });

注:请注意引用字符。

其他回答

你可以使用这个等价的语法:

obj[name] = value

例子:

let obj = {};
obj["the_key"] = "the_value";

或带有ES6功能:

let key = "the_key";
let obj = {
  [key]: "the_value",
};

在这两个例子中,console.log(obj)将返回:{the_key: 'the_value'}

const data = [{
    name: 'BMW',
    value: '25641'
  }, {
    name: 'Apple',
    value: '45876'
  },
  {
    name: 'Benz',
    value: '65784'
  },
  {
    name: 'Toyota',
    value: '254'
  }
]

const obj = {
  carsList: [{
    name: 'Ford',
    value: '47563'
  }, {
    name: 'Toyota',
    value: '254'
  }],
  pastriesList: [],
  fruitsList: [{
    name: 'Apple',
    value: '45876'
  }, {
    name: 'Pineapple',
    value: '84523'
  }]
}

let keys = Object.keys(obj);

result = {};

for(key of keys){
    let a =  [...data,...obj[key]];
    result[key] = a;

}

与主题相关,但不是专门针对jquery的。我在ec6 react项目中使用了这个,可能会帮助到一些人:

this.setState({ [`${name}`]: value}, () => {
      console.log("State updated: ", JSON.stringify(this.state[name]));
    });

注:请注意引用字符。

你甚至可以像这样创建对象列表

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);
});

访问对象值的3种方法 我们可以通过传入适当的键来输出对象值。因为在我的例子中我使用了表情符号作为键,这有点棘手。我们来看一个更简单的例子。

let me = {
  name: 'samantha',
};

// 1. Dot notation
me.name; // samantha

// 2. Bracket notation (string key)
me['name']; // samantha

// 3. Bracket notation (variable key)
let key = 'name';
me[key]; // samantha

知道更多