2011-06-08 69 views
7

我有一個內部有兩個對象的關聯數組。通過運行$(myassoc).each(),回調只運行一次。此外,回調參數(索引和對象)分別返回0和整個關聯數組。jQuery.each()如何與關聯數組(對象)一起工作?

可以預期jQuery.each()爲數組中的每個元素運行,返回正確的鍵作爲索引和正確的元素作爲對象。

爲什麼沒有這種情況發生,jQuery可以做我以後的事情?

+0

請問您能顯示代碼嗎? '$(obj).each()'可以正常工作 – 2011-06-08 08:39:41

+1

你有沒有試過'$ .each(myassoc,func ...'? – 2011-06-08 08:40:55

+0

如果你只有兩個對象(數組的2個鍵),所以只會有兩個如果你想'each'這兩個對象,你必須爲它們再次'.each' – 2011-06-08 08:41:26

回答

16

我認爲你正在尋找jQuery.each()代替。每()

試試這個:

$.each(myassoc, function(index, value){ 
     //your code 
    }); 
7

試試這個:

$.each(assocarray,function(i, value){ 
    console.log('index: ' + i + ',value: ' + value); 
}); 
1

的問題是$.each()內部功能檢索並使用傳遞集合的length屬性。但是在一個沒有整數索引的關聯數組length似乎總是0。對於$.each()現在似乎沒有什麼可以通過。

$.each()內部函數獲取並使用通過收集的length 財產。

解決方案只是簡單地使用對象。

var myassoc = {};