我有这个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());
});
}
无法推送密钥数组中的任何数据,我收到的消息是: 无法调用未定义的方法'push'
有什么想法吗?
答案 0 :(得分:7)
jQuery将this
设置为回调到.each
的DOM元素。您可以将this
保存到变量中,然后使用它。
var self = this;
$("#item_key div input").each(function(index) {
self.keys.push($(this).val()));
}
答案 1 :(得分:1)
试试这样:
var $this = this;
$("#item_key div input").each(function (index) {
$this.keys.push($(this).val());
});
由于每个循环内的this
实际上是对输入标记的引用,因此您的代码无效。但是你需要在这里引用 Item_properties 。
答案 2 :(得分:0)