在尝试构建从学校的flickr API中提取的简单图像库时,我遇到了一个问题。
我的代码......
$(document).ready(function() {
$.get('http://api.flickr.com/services/rest/?&method=flickr.photos.search&tags=thor&api_key=[API_KEY]5&per_page=10', function(data) {
var items = [];
$(data).find("photo").each(function(index, value) {
var ident = (value.id);
var secret_id = (value.secret);
var farm_id = (value.farm);
var server_id = (value.server);
$("#target").append("<p>" + ident + " " + server_id + " " + secret_id + " " + farm_id + "</p>");
});
});
});
输出......
“10627683824 undefined undefined undefined”(其中10个具有不同的id值)
我知道我走在正确的轨道上。如果有人可以向我解释为什么我得到了未定义的值,我将不胜感激。
答案 0 :(得分:2)
您需要使用attr
从返回的XML中获取属性。试试这个:
$.get('http://api.flickr.com/services/rest/?&method=flickr.photos.search&tags=thor&api_key=[API_KEY]&per_page=10', function (data) {
var items = [];
$(data).find("photo").each(function (index, value) {
var ident = value.id;
var secret_id = $(value).attr('secret');
var farm_id = $(value).attr('farm');
var server_id = $(value).attr('server');
$("#target").append("<p>" + ident + " " + server_id + " " + secret_id + " " + farm_id + "</p>");
});
});
它适用于value.id
的唯一原因是因为id
是本机属性。