Javascript 如何从JQuery函数中将值推送到数组
我有一个Javascript变量: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())
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());