2

在尝试构建一个简单的 10 个从 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 值)

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

4

1 回答 1

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它是原生属性。

于 2013-11-02T19:24:05.087 回答