【问题标题】:Tumblr API: 'Cannot read property 'alt_sizes' of undefined'Tumblr API:'无法读取未定义的属性'alt_sizes'
【发布时间】:2013-09-25 06:14:39
【问题描述】:

我正在尝试使用 Tumblr API 实现照片提要。到目前为止,它只适用于文本,但是当我尝试照片时,我得到了错误

Cannot read property 'alt_sizes' of undefined

我不确定如何纠正我的代码以解决此问题。我的代码是:

$.ajax({
    url: "http://api.tumblr.com/v2/blog/myblog.tumblr.com/posts?api_key=key&tag=offers",
    dataType: 'jsonp',
    success: function(results){

    var i = 0;

     while (i < 10) {

       var type = results.response.posts[i].type;
       var date = results.response.posts[i].date;
       var link = results.response.posts[i].post_url;

       if (type == "photo") {
         var photourl = results.response.posts[i].photos[i].alt_sizes[i].url;
         $("#tumoffers").append("<div class='tumpost'><a href='" + link + "'><img src='" + photourl + "' alt='" + title + "'/></a></div>");
       }

      i++;
     }//END WHILE

    }//END RESULTS FUNCTION
});

查看 Tumblr API 文档,我看到 alt_sizes 转换为图像的大小,但我不想使用此属性。

有谁知道如何让 API 忽略这个属性?

【问题讨论】:

    标签: javascript ajax api tumblr


    【解决方案1】:

    您可以在实际尝试访问之前使用hasOwnProperty 检查此类属性是否存在,例如:

    var data = results.response,
        i = results.response.total_posts; //this gives total posts you have
    while (i < 10) {
        var type = data.posts[i].type,
            date = data.posts[i].date,
            link = data.posts[i].post_url;
    
       if( "photo" == type ) {
            if( data.posts[i].hasOwnProperty("alt_sizes") {
               var photourl = results.response.posts[i].photos[i].alt_sizes[i].url;
               $("#tumoffers").append("<div class='tumpost'><a href='" + link + "'><img src='" + photourl + "' alt='" + title + "'/></a></div>");
            }
       }
       i++;
    }
    

    【讨论】:

      【解决方案2】:

      我发现它出错了,因为每个帖子可以有多张照片,所以行

      .photos[i].alt_sizes[i]

      实际上在不同的数组中,在主帖子数组中。

      在我的情况下,我每个帖子只使用 1 张照片,所以我只是将其更改为

      .photos[0].alt_sizes[0]

      但要正确执行,您应该为每个帖子的照片创建另一个循环。

      【讨论】:

        猜你喜欢
        • 2020-11-06
        • 1970-01-01
        • 1970-01-01
        • 2020-12-30
        • 1970-01-01
        • 2020-04-06
        • 2020-10-30
        • 2019-10-09
        • 1970-01-01
        相关资源
        最近更新 更多