【问题标题】:Undefined values returned from flickr api从 flickr api 返回的未定义值
【发布时间】:2013-11-02 19:21:05
【问题描述】:

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

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

【问题讨论】:

    标签: jquery html flickr


    【解决方案1】:

    您需要使用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 是本机属性。

    【讨论】:

    • 这确实在我的剪贴板中,即将被粘贴:p
    • 效果很好。刚接触 jquery 和 API 的人怎么会知道像 id 这样的东西是本机的,而其余的东西需要 attr?
    • 很高兴为您提供帮助。了解原生属性需要了解底层 javascript DOM 元素,与 jQuery 无关。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-15
    • 2013-10-09
    • 1970-01-01
    • 1970-01-01
    • 2021-09-22
    相关资源
    最近更新 更多