0

私は素晴らしい仕事をしているこの作品を持っています。

(function() {

    // What JSON do you want to get? Note: If you're making a request from your own domain to your own domain, delete &callback=?.
    var url = 'http://myurl/guest-posts/?category=ffm&format=json&callback=?';

    $.getJSON(url).done(function(data) { // Adds the JSON to the data variable.

        // Create the HTML string.
        var headerContent = '<h1><a href="' + data.website.authenticUrl + '">' + data.website.siteTitle + '</a></h1>';

        // Set the HTML.
        $('#header').html(headerContent);

        $(data.items).each(function() {
            var post =  '<a href="http://myurl/' + this.fullUrl + '"><h2>' + this.title + '</h2></a><img src= "'+this.assetUrl+'" alt ="'+this.filename+'"><a href="http://myurl/' + this.fullUrl + '">Read More</a>' ;
            $('#blog').append(post);
        });
    });
})();

最新の6件の投稿を表示したい。最新の6つの投稿のみが表示されるようにループする方法がわかりません。それを呼びたい場合は、古い投稿を上書きします。

ATM i には、カテゴリに割り当てられた 3 つの投稿があり、正しい順序で表示されます。タイトル、画像のサムネイル、投稿に移動する続きを読むリンク。

すべてをループするだけなので、常に 6 つの記事しかなく、最新の記事が最初になります。

それが働いている簡単なイメージ。

4

3 に答える 3

1
$(data.items).each(function() {
        var post =  '<a href="http://fantasyfootballpundits.com/' + this.fullUrl + '"><h2>' + this.title + '</h2></a><img src= "'+this.assetUrl+'" alt ="'+this.filename+'"><a href="http://fantasyfootballpundits.com/' + this.fullUrl + '">Read More</a>' ;
        $('#blog').append(post);
    });

^^そのコードはデータ内の各項目をループするため、6 つだけに制限されているわけではありません

このようなものを使用して、通常の for ループを使用してループできます。

for(var i = 0; i < 6; i++)
{
    if(data.items[i] != null)
    {
        var current = data.items[i];
        var post =  '<a href="http://fantasyfootballpundits.com/' + current.fullUrl + '"><h2>'     + current.title + '</h2></a><img src= "'+current.assetUrl+'" alt ="'+current.filename+'"><a href="http://fantasyfootballpundits.com/' + current.fullUrl + '">Read More</a>' ;
        $('#blog').append(post);
    }
}

これがあなたを正しい方向に向けることを願っています

于 2013-05-30T12:54:55.677 に答える
1

コードを次のように変更します

 $(data.items).each(function(index) {
    //Stop 
    if(index > 5)
         return; 

   var post =  '<a href="my-url/' + this.fullUrl + '"><h2>' + this.title + '</h2></a><img src= "'+this.assetUrl+'" alt ="'+this.filename+'"><a href="my-url.com/' + this.fullUrl + '">Read More</a>' ;
      $('#blog').append(post);
  });

デモ: http://jsfiddle.net/B8kQ9/

于 2013-05-30T12:51:10.250 に答える
0

次のように、 .each() ループでインデックスを直接確認し、6 回後にループを中断できます。

$(data.items).each(function(index) {
if(index>5)
 return false;
else{
      var post =  '<a href="my-url/' + this.fullUrl + '"><h2>'     + this.title + '</h2></a><img src= "'+this.assetUrl+'" alt ="'+this.filename+'"><a href="my-url/' + this.fullUrl + '">Read More</a>' ;
      $('#blog').append(post);
      return true;
    }
    });

これは、6回の反復後にループを破ります!

于 2013-05-30T13:05:37.203 に答える