flickr api返回未定义的值

时间:2013-11-02 19:21:05

标签: jquery html flickr

在尝试构建从学校的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值)

我知道我走在正确的轨道上。如果有人可以向我解释为什么我得到了未定义的值,我将不胜感激。

1 个答案:

答案 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>");
    });
});

Example fiddle

它适用于value.id的唯一原因是因为id是本机属性。