对象的jquery $ .each()

 $(document).ready(function() { var data = { "programs": [ { "name":"zonealarm", "price":"500" }, { "name":"kaspersky", "price":"200" } ] }; $.each(data.programs[0], function(key,val) { alert(key+val); }); });  

此代码检索第一个数据。 name:zonealarmprice:500 。 如何检索对象中的所有数据? 我尝试了$.each(data.programs, function(key,val)但它没有用。我应该把它放在循环中吗?

$.each()适用于对象和数组:

 var data = { "programs": [ { "name":"zonealarm", "price":"500" }, { "name":"kaspersky", "price":"200" } ] }; $.each(data.programs, function (i) { $.each(data.programs[i], function (key, val) { alert(key + val); }); }); 

…并且因为您将获取当前数组元素作为第二个参数:

 $.each(data.programs, function (i, currProgram) { $.each(currProgram, function (key, val) { alert(key + val); }); }); 

您确实将第一个数据项传递给每个函数。

将data.programs传递给每个函数。 将代码更改为:

  

基本上你需要在这里做两个循环。 你正在做的那个是迭代第0个数组元素中的每个元素。

你有程序:[{…},{…}]所以程序[0]是{“name”:“zonealarm”,“price”:“500”}所以你的循环就是这样。

你可以在数组上做一个外循环

 $.each(data.programs, function(index) { // then loop over the object elements $.each(data.programs[index], function(key, value) { console.log(key + ": " + value); } }