【问题标题】:Iterating through and accessing JQuery object elements遍历和访问 JQuery 对象元素
【发布时间】:2013-12-18 09:45:33
【问题描述】:

我有一个需要遍历的变量长度的 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];
}

【问题讨论】:

  • 它没有给你每个内部数组的最后一个元素;它为您提供外部列表中条目的键。它给了你0,因为my_object["entities"][0] 是数组my_object["entities"] 中的第一项。巧合的是,每个内部数组的最后一项也是数组的索引。
  • @apsillers,是的,我认为是这样的,感谢您的澄清

标签: jquery object iteration


【解决方案1】:

my_object.entities 是一个数组数组

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

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

演示:Fiddle

在 valina 脚本中

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

【讨论】:

    【解决方案2】:

    试试:

    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.

    【讨论】:

      猜你喜欢
      • 2020-04-07
      • 1970-01-01
      • 2020-08-08
      • 2021-03-22
      • 2011-10-04
      • 2020-04-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多