我已经可以使用JQUERY .each()从JSON对象获取数据,但似乎无法弄清楚如何将要插入链接的URL数组作为目标。
这是getJson函数
function getDetails(itemName) {
$.getJSON("getDetails.json", function (data) {
$("#description").empty();
$.each(data, function () {
if (this["id"] === itemName) {
$("#description").append("<p>Description: " + this["description"] + "</p>");
$("#description").append("<p>Price: " + this["price"] + "</p>");
$("#description").append("<ul></ul>");
$.each(data.urls, function () {
$("#description ul").append("<li><a href=\"" + /*some_code*/ + "\">" + /*some_code*/ + "</a></li>");
});
}
})
});
};
还有我正在使用的JSON对象。
{
"id": "itemGuitar",
"description": "Pete Townshend once played this guitar while his own axe was in the shop having bits of drumkit removed from it.",
"price": "5695.99",
"urls": ["http://www.thewho.com", "http://en.wikipedia.org/wiki/Pete_Townshend"]
}
答案 0 :(得分:0)
如果您阅读.each()
中的documentation,则会发现index
已传递到函数中。
$.each(data.urls, function (index) {
/* Use index here to get url */
console.log(data.urls[index]);
});
答案 1 :(得分:0)
您可以通过使用jQuery传递给回调函数的参数来做到这一点:
$.each(data.urls, function (i, url) {
$("#description ul").append("<li><a href=\"" + url + "\">" + url + "</a></li>");
});
您甚至可以像这样由内向外翻转(但请注意,$.map
的参数顺序不同):
$("#description ul").append($.map(data.urls, function (url, i) {
return "<li><a href=\"" + url + "\">" + url + "</a></li>";
}));
我还建议使用jQuery样式创建元素:
$("#description ul").append($.map(data.urls, function (url, i) {
return $("<li>").append($("<a>").attr("href", url).text(url));
}));