【发布时间】:2015-03-04 05:19:04
【问题描述】:
我正在使用 ajax 调用来使用 jQuery 获取 JSON 文件。虽然我成功地这样做并且可以达到文件的值,但下一个挑战是获取对象数组的值并将其与输入源进行比较。如果为 true,则在 span 或 div 中打印出来...
这是使用 jQuery 的脚本:
<!doctype html>
<html>
<head>
<title>jQuery.getJSON demo</title>
</head>
<body>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js"></script>
<script>
/*
$.getJSON('zipcodes.json', function(data){
console.log('It worked!');
//test
});
*/
$.ajax({
url: 'zipcodes.json',
dataType: 'json',
type: 'get',
cache: false,
success: function (data) {
$(data.zipcodes).each(function(index, value) {
console.log(value.zip);
});
}
});
</script>
JSON 文件是:
{
"zipcodes": [
{
"zip": "20002",
"city": "Washington",
"state": "DC"
},
{
"zip": "10001",
"city": "New York",
"state": "NY"
}
]
}
JSON 文件是有效的,但我想我正试图找出 zip 值的比较,例如
如果数组中的 var text = '10001' == value.zip 返回 HTML 中的城市和州,我可以实现该部分,但在 jQuery 部分我不知道如何获取索引。我尝试使用 .eq 和 .get,但它不起作用。
谢谢!
【问题讨论】:
-
您也可以获取文件内容并使用
JSON.parse(JSONString);直接将其转换为JS对象,然后您可以使用循环对其进行迭代。 -
不明白是什么问题,我只是用你的代码做 value.zip == '10001' 并且它为 1 个邮政编码返回 true,你到底哪里有问题?
-
使用
indexOf,例如:var zips = ["11111", "12345", "12345"]并检查if (zips.indexOf(value.zip) > -1) -
让我这样说。我有一个输入文本框,其形式将采用邮政编码值..例如10001 然后在数组中比较它并返回它。我使用了 JS 对象,但我想尝试 jQuery,因为我是新手。 tymeJV 的评论不适用,因为您正在定义一个数组。
标签: javascript jquery html ajax json