将多个对象添加到一个对象中

问题描述 投票:1回答:4

如何将多个对象添加到一个对象中?我有一个选择框更改事件,它具有如下处理程序:

this.selectBoxChanges = {};

onSelect: function(event){
    var p = $(event.currentTarget).attr('id');
    var obj = {};
    obj[p] = $(event.currentTarget).val();
    this.selectBoxChanges = obj;
},

[我想做的是将所有对象存储在名为selectBoxChanges的对象中,以便在选择确认按钮后,所有对象都将传递到主干模型。像这样:

onConfirm: function(){
    this.model.set(this.selectBoxChanges);
}
jquery backbone.js
4个回答
0
投票

您将属性分配给对象。属性可以是变量,函数,另一个对象,另一个属性,等等。

var selectBoxChanges = {
    "values" : {
        "oldValue" : oldVal,
        "newValue" : newVal
    },
    "anotherProperty": someVariable,
    "functionProperty": function () {
       // do stuff
    }
};

0
投票

哈,您在我提交此答案之前先在下面发布了答案。无论如何我都会离开它:)

原始帖子->

您是要在对象中存储多个表单元素,还是要在对象中的同一列表框中存储多个值?

您可以将属性添加到selectBoxChanges,方法与当前将其添加到obj对象的方法相同:

selectBoxChange[this.id] = $(this).val();

但是,如果您尝试对同一对象重复执行此操作,则您将需要能够使用除主干能够使用的元素ID之外的其他东西。

如果要附加用户从下拉菜单中选择的所有不同项目,则可以存储一系列项目:

if(selectBoxChange[this.id]) {
  selectBoxChange[this.id].push($(this).val());
} else {
  selectBoxChange[this.id] = [$(this).val()];
}

0
投票

我想答案很简单,直到我发布了我所要做的全部线程之后,才看到它]

this.selectBoxChanges = {};

onSelect: function(event){
    var p = $(event.currentTarget).attr('id');
    this.selectBoxChanges[p] = $(event.currentTarget).val();
},
© www.soinside.com 2019 - 2024. All rights reserved.