我正在尝试在 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/