jquery - jquery中没有定义长度

标签 jquery json

我正在尝试在 JSON 数据中搜索对象的属性。

但是我在 jQuery 中收到类似 uncaught type error:length is not Defined 的错误。我的 JSON 如下所示:

var list = {
    meta: {
        limit: 1000,
        offset: 0,
        previous: null,
        total_count: 1797
    },
    objects: [{
        id: 1215,
        location: {
            id: 1306,
            name: "Austin",
            parent_id: 43,
            type: "City",
        },
        name: "2ND Street District",
    }]
};

$.each(list.objects.location, function (i, v) {
    if (v.id.search(new RegExp(/1036/i)) != -1) {
        alert(v.name);
        return;
    }
});

给我关于这个问题的任何想法。

最佳答案

您的代码中有两个错误。首先,您没有迭代数组。该数组是 list.objects,而不是 list.objects.location (这就是您收到错误 length is not Defined 的原因)。因此,您必须将 $.each() 调用更改为:

$.each(list.objects, function(i, v) {

现在您可以使用v.location.id来访问当前对象的id。接下来的问题是:它是一个整数,并且没有函数search(),所以我们直接在表达式上使用.test(),它会转换在测试之前将整数转换为所需的字符串,并将结果作为 bool 值返回,这正是您在这里所需要的。

  if ( /1306/.test(v.location.id) ) {
    alert(v.name);
  }
});

查看工作 jsfiddle

关于jquery - jquery中没有定义长度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19242734/

相关文章:

javascript - 当光标靠近底部时自动滚动动画

javascript - 在 js 中调试 php 上的 var

javascript - 使用 Handlebars 生成 JSON

java - 将 JsonNode 转换为 java 数组

javascript - 如何获取 2 个元素之间的文本

jquery - 动画文本围绕一个圆圈旋转

javascript - jQuery游戏-让直升机飞行更流畅

html - JSON 中的 CSS 标签

python - Python Properties类的Json序列化

javascript - 如何在javascript中进行封装