将此JavaScript对象视为包装为JSON:
vars = $.parseJSON('{"timestamp":1402720347,"AktiveSprak":{"en":{"ID":"en","Norsk_navn":"Engelsk","Lokalt_navn":"English","Bilde":"flagg_en.png","Aktivt":"1"},"no":{"ID":"no","Norsk_navn":"Norsk","Lokalt_navn":"Norsk","Bilde":"flagg_no.png","Aktivt":"1"}}}')
我想迭代对象AktiveSprak,但我无法弄清楚如何。
现在我可以vars.AktiveSprak
但是为了使用jQuery的.each函数,对象需要像j $(vars)
一样包装在jQuery中。现在,为什么我不能做这些:
$(vars).AktiveSprak.each(function(){})
$(vars)[0].AktiveSprak.each(function(){})
$(vars).find("AktiveSprak").each(function(){})
$(vars)[0].find("AktiveSprak").each(function(){})
答案 0 :(得分:6)
$(object).each
只能在jquery对象上调用以与普通对象一起使用:
$.each(vars.AktiveSprak,function(index,item){});
http://api.jquery.com/jquery.each/
$ .each()函数与$(selector).each()不同,即 用于独占迭代jQuery对象。 $ .each() 函数可用于迭代任何集合,无论它是否为 对象或数组。
答案 1 :(得分:1)
即使使用jQuery,也不是每次迭代都必须使用$.each
执行。在这种情况下,最好使用JavaScript的内置in
迭代器
var s = $.parseJSON('{"timestamp":..., "AktiveSprak":{ "de":..., "no":... }}');
for (var lang in s.AktiveSprak) {
console.log( lang );
}