2010-12-09 48 views
2

我有一個JavaScript問題,這讓我完全瘋了。我有一組數據,我使用jQuery .each()方法進行迭代。在.each()回調函數中,我將數據推送到數組中。這是代碼。我也嘗試使proceArray global(前面沒有var),然後試圖不通過匿名函數傳遞它。不能從Javascript中的匿名回調函數將項目推入數組中

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

數據確實存在(警報在回調顯示中很好)。有任何想法嗎?我覺得這是一個範圍問題,但我認爲全球化陣列可以解決這個問題。

感謝

回答

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訪問。

  • 基督教
+0

雖然這並沒有直接解決我的問題,它確實強調另一個監督。我使用的是.each()迭代器(通常用於DOM元素),而不是用於迭代任何對象的jQuery.each()迭代器。 – 2010-12-09 11:17:19