2013-10-06 40 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

相关问题