无法将项目从Javascript中的匿名回调函数推送到数组中

时间:2010-12-09 04:11:02

标签: javascript jquery

我有一个javascript问题让我完全疯了。我有一组数据,我正在使用jQuery .each()方法迭代。在.each()回调函数中,我正在推送数组上的数据。这是代码。

var p = procedure_tool.all();
previousValue = -1;
var proceduresArray = [];
p.each(function(d, proceduresArray) {
proceduresArray.push(d.procedureID);
});

我也试过使proceduresArray全局(前面没有var),然后尝试不通过匿名函数传递它。

var p = procedure_tool.all();
previousValue = -1;
proceduresArray = [];
p.each(function(d) {
proceduresArray.push(d.procedureID);
})

数据确实存在(回调内的警报显示正常)。有任何想法吗?我觉得这是一个范围问题,但我认为全局化数组会修复它。

由于

1 个答案:

答案 0 :(得分:3)

两件事,

1-您无需将proceduresArray传递给匿名函数。 2- .each()中的匿名函数传递了2个东西。第一个是元素的索引,第二个是元素。即callback(indexInArray, valueOfElement) http://http://api.jquery.com/jQuery.each/

这应该可以正常工作:

var p = procedure_tool.all();
previousValue = -1;
var proceduresArray = [];
p.each(function(i, d) {
proceduresArray.push(d.procedureID);
});

另一个例子:

var p = $('div');
var pArray = [];

p.each(function(i, el)
{
    pArray.push(el);
});

console.log(pArray);

请记住,也可以使用匿名函数中的this来访问该值。

  • 基督教