我见过许多JQuery示例,它们使用$ .each来循环遍历JSON数组.但是,需要做的是单独抓取项目0 - 3并将它们传递给另一个名为"搜索"的函数.这就是我想出来的.
$.getJSON("http://localhost:61741/binggame/play?cat=Body%20Parts", {
tags: "English",
tagmode: "any",
format: "json"
},
function (data) {
Search(data.items[0], "Box1_Image");
Search(data.items[1], "Box2_Image");
Search(data.items[2], "Box3_Image");
Search(data.items[3], "Box4_Image");
});
Run Code Online (Sandbox Code Playgroud)
我很确定data.items []不是正确的语法.
这是我的JSON示例:
{"nouns":[
{
"ID":26,
"Category":"Body Parts",
"English":"muscle",
"Pinyin":"gei yUk",
"Image1":null,
"Audio1":null
},
{
"ID":27,
"Category":"Body Parts",
"English":"neck",
"Pinyin":"gen",
"Image1":null,
"Audio1":null
},
{
"ID":28,
"Category":"Body Parts",
"English":"nose",
"Pinyin":"bei",
"Image1":null,
"Audio1":null
},
{
"ID":29,
"Category":"Body Parts",
"English":"rib",
"Pinyin":"lat gwt",
"Image1":null,
"Audio1":null
}
]}
Run Code Online (Sandbox Code Playgroud)
对于此示例,data.items [0]的值应为"muscle",data.items [1]应为"neck",data.items [2]应为"nose",data.items [3]应为是"肋骨".
有人能指出我做错了什么吗?
有人能指出我做错了什么吗?
首先,items您的JSON中没有属性名称.
如果你想得到"muscle":data.nouns[0].English
如果你想得到"neck":data.nouns[1].English
等等:
function (data) {
Search(data.nouns[0].English, "Box1_Image");
Search(data.nouns[1].English, "Box2_Image");
Search(data.nouns[2].English, "Box3_Image");
Search(data.nouns[3].English, "Box4_Image");
});
Run Code Online (Sandbox Code Playgroud)
或者,保持DRYer:
function (data) {
var nouns = data.nouns;
function getNoun(i) {
return nouns[i].English;
}
Search(getNoun(0), "Box1_Image");
Search(getNoun(1), "Box2_Image");
Search(getNoun(2), "Box3_Image");
Search(getNoun(3), "Box4_Image");
});
Run Code Online (Sandbox Code Playgroud)
或者更好的是:
function (data) {
var nouns = data.nouns;
for (var i=0; i<4; i++) {
Search(nouns[i].English, 'Box' + (i+1) + '_Image');
}
});
Run Code Online (Sandbox Code Playgroud)