Javascript 如何从JQuery函数中将值推送到数组

Javascript 如何从JQuery函数中将值推送到数组,javascript,jquery,Javascript,Jquery,我有一个Javascript变量: var Item_properties = { id : null, keys : [], hydrate: function() { //get data this.id = $('input[id=id]').val(); $("#item_key div input").each(function(index) { this.keys.push($(this).val())

我有一个Javascript变量:

var Item_properties = {
   id : null,
   keys : [],
   hydrate: function() {
       //get data
       this.id = $('input[id=id]').val();

       $("#item_key div input").each(function(index) {
          this.keys.push($(this).val());
       });
}
无法在keys数组中推送任何数据,我得到消息: 无法调用未定义的方法“push”

有什么想法吗?

jQuery将其设置为.each回调中的DOM元素。您可以将其保存到变量中,然后使用它

var self = this;
$("#item_key div input").each(function(index) {
  self.keys.push($(this).val()));
}
试着这样做:

var $this = this;
$("#item_key div input").each(function (index) {
    $this.keys.push($(this).val());
});
您的代码不起作用,因为每个循环中的this实际上是对输入标记的引用。但是您需要在此处引用项目属性。

其他属性都可以,这里有另一种方法

你可以用

Item_properties.keys.push($(this).val());
而不是

this.keys.push($(this).val());