迭代并访问JQuery对象元素

时间:2013-12-02 15:59:47

标签: jquery object iteration

我有一个变量长度的JQuery对象,我需要迭代。这是对象的一个​​示例:

{"entities":[["Undefined Farm","e8bb6d2f-be69-49a2-9851-28cdb6f936f2",0],["Home","ba72e1cf-72dd-415e-9d6f-d5d1493b19f3",1]]}

以上是我打印JSON.stringify(my_object)时输出的内容。

结构基本上是我称之为(在Python中)一个字典,其键是“实体”。该值是列表列表。在列表列表中,每个列表的长度为3,前两个元素是字符串,最后一个元素是一个整数,描述列表所对应的列表列表的索引。

我想迭代这个列表列表,并利用每个列表的所有三个部分来做HTML的一些事情。

就这样我可以尽可能清楚,如果我要做这样的事情就是Python,它看起来像:

for lst in my_object["entities"]:
    print lst[0], lst[1], lst[2]

我必须假设JQuery中有一些同样简单的东西。到目前为止,我已经尝试过:

for (var p in my_object["entities"]) {
    alert(p):
}

但是所有这些都是整数(每个列表的最后一个元素)。

我也尝试将对象作为字符串读取,然后将其拆分,但没有打印出来:

var p = my_object["entities"]
var arr = p.split(",")
for (int i = 0; i < arr.length; i++) {
    alert(arr[i];
}

2 个答案:

答案 0 :(得分:1)

my_object.entities是一个数组数组

您可以使用$.each()声明

$.each(my_object.entities, function(_, entity){
    console.log(entity[0], entity[1], entity[2])
})

演示:Fiddle

in valina script

var p = my_object["entities"]
for (var i = 0; i < p.length; i++) {
    console.log(p[i][0], p[i][3], p[i][4]);
}

演示:Fiddle

答案 1 :(得分:0)

尝试:

var  obj = {"entities":[["Undefined Farm","e8bb6d2f-be69-49a2-9851-28cdb6f936f2",0],["Home","ba72e1cf-72dd-415e-9d6f-d5d1493b19f3",1]]}
var len = obj.entities.length;
console.log(obj)
for(var i=0;i<len;i++){
    var txt = "";
    var olen = obj.entities[i].length;
    for(var j=0;j<olen;j++){
        txt += obj.entities[i][j];
        if(j < olen){
            txt += ", ";
        }
    }
    $("body").append("<div>"+txt+"</div>");
}

Fiddle here.