jquery $ .each()用于对象

时间:2011-06-01 21:39:31

标签: jquery each

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

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

4 个答案:

答案 0 :(得分:89)

$.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);
    });
});

答案 1 :(得分:7)

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

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

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

答案 2 :(得分:4)

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

你有节目:[{...},{...}] 所以program [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);
    }

}

答案 3 :(得分:0)

在“INId”div中插入数据...

$(document).ready(function() {
        var data = { "programs": [ { "name":"zonealarm", "price":"500" }, { "name":"kaspersky", "price":"200" } ] };
        $.each(data.programs, function(key,val) {
            // console.log(val);
            $('#InId').append("Name: " +val.name+" & Price: "+val.price+"<br/>");
        });
    });

$(document).ready(function() { var data = { "programs": [ { "name":"zonealarm", "price":"500" }, { "name":"kaspersky", "price":"200" } ] }; $.each(data.programs, function(key,val) { // console.log(val); $('#InId').append("Name: " +val.name+" & Price: "+val.price+"
"); }); });