2013-10-06 41 views
0

我試圖使用下面的代碼,它以我想要的方式工作,通過本田,豐田和福特在第二個每個()警報。但第一個只輸出0.爲什麼這樣做?jQuery each()給我兩個嵌套對象的不同結果

var cars = { 
     honda : {0: "Accord", 1: "Prelude", 2: "Civic"}, 
     toyota: {0: "Camry", 1: "Corolla", 2: "BRZ"}, 
     ford: {0: "Mustang", 1: "Focus"} 
} 

$(cars).each(function(key, value)) { 
    alert(key); 
}) 

$.each(cars, function(key, value) { 
    alert(key); 
}) 
+1

第一個錯誤是因爲您嘗試創建jQuery對象,但cars不是有效的DOM元素或選擇器,這就是爲什麼它輸出「O」。 – Joe

+2

而你的內部對象應該是數組。像'本田:[「雅閣」,「前奏」,「思域」]' – bfavaretto

回答

0

你的第一個例子輸出爲0,因爲當你做$(cars),你在一個jQuery對象包裝的cars對象,一個對象索引元素0

你也應該注意到這兩個「每個」方法之間的區別:

jQuery.each()$。每個()

一個通用的迭代函數,它可以用於無縫迭代 在兩個對象和數組。

.each()

迭代一個jQuery對象,執行用於每一個匹配元素的功能。

-1

通過陣列試試這個,循環:

for (i=0; i<cars.length; i++){ 
    alert (cars[i]); 
} 
+0

是不是他們的汽車的鑰匙汽車的名稱?那麼這是否意味着具有索引i的引用元素返回null? – majikman

+0

沒有。它實際上會返回汽車[i] –

+0

的價值......但我所說的是我是一個整數。在我上面定義的數據結構中,我沒有任何整數索引 編輯:抱歉,我這樣做。但他們在汽車[] [],而不是汽車[] – majikman

相關問題