如何使用输入id的名称创建对象属性?

时间:2012-11-28 13:22:41

标签: javascript jquery

<input id="some_id" value="some_value">

我需要从上部输入创建{some_id: some_value}(换句话说,我需要使用id的属性值的名称)。

我试过了:

jQuery('[name="page-numbers[]"]').map(function () {
  return { jQuery(this).attr('id'): jQuery(this).val()};
}).get();
jQuery('[name="page-numbers[]"]').map(function () {
  return {this.id: this.value};
}).get();

但每次我在{this.id:附近收到错误。如果只调用this.idthis.value或相同的jQuery - 结果返回。

2 个答案:

答案 0 :(得分:3)

在您的情况下,您应该使用square bracket notation来定义空对象:

$('[name="page-numbers[]"]').map(function() {
    var obj = {};
    obj[this.id] = this.value;
    return obj;
}).get();

答案 1 :(得分:1)

如果你想创建某种“input_id”:“input_value”键值关联,你会用错误的方法来创建它,我会说。试试这个:

var assocs = {};
jQuery('[name="page-numbers[]"]').each(function () {
  assocs[this.id] = this.value;
})

使用.map,您将获得一个包含许多键/值映射的数组。