1

Tumblr API を使用して、自分のサイトで画像フィードを生成しています。

写真とその URL は問題なく取得できますが、キャプションは取得できません。

投稿を単純にループするスクリプトを作成しました。

成功: 関数(結果){

var i = 0;

 while (i < results.response.posts.length) {

    if (type == "photo") {
     var photourl = results.response.posts[i].photos[0].alt_sizes[0].url;
     var caption = results.response.posts[i].caption;

     $("#tumnews #newscara").append("<li><div class='tumpost'><a href='" + link + "'><img src='" + photourl + "' alt='" + title + "'/><div class='tumcaption'>" + caption + "</div></a></div></li>");
   }

  i++;
 }//END WHILE

しかし、ドキュメントでは単に「キャプション」という用語で取得すると述べていても、キャプションのデータを取得することはできません( http://www.tumblr.com/docs/en/api/v2#photo-posts )。

私も試しました:

  var caption = results.response.posts[i].photos[0].caption;

  var caption = results.response.posts[i]photos[0].caption[0];

しかし、結果は得られません。エラーもありません。

これを適切に行う方法を知っている人はいますか?

4

2 に答える 2

1

手がかりはドキュメントにあります

プロパティを持つ写真オブジェクト: キャプション – 文字列: 個々の写真のユーザー指定のキャプション (フォトセットのみ)

試しているコードは、Photoset投稿の 1 枚の写真のキャプションに関連しています。

var caption = results.response.posts[i].photos[0].caption

あなたのコードは、 Photosetの投稿ではなく、Photoの投稿を扱うことを示唆しているように思われるため、次のように使用します。

var caption = results.response.posts[i].caption

それが役立つことを願っています。

于 2013-10-04T12:07:44.797 に答える
0

まず、JQuery を使用しているため、 $.each() を使用してループを実行します。

success: function(results){
  console.log(results); // <-- This is your best friend

  $.each(results.response.posts, function(k, post){
    if (type == "photo") {
     var photourl = post.photos[0].alt_sizes[0].url;
     var caption = post.caption;
     $("#tumnews #newscara").append("<li><div class='tumpost'><a href='" + link + "'><img src='" + photourl + "' alt='" + title + "'/><div class='tumcaption'>" + caption + "</div></a></div></li>");
    }
  });

}

また、API から期待される結果を取得していない場合は、console.log(results); を試してください。Firebug または別の Web インスペクターで作業しているデータの種類を確認します。

于 2013-10-04T00:44:30.710 に答える