2011-07-11 15 views
1

jsonファイルを順序付けられていないリストで解析しています。 問題は、私は3つの項目だけを含む "ul"で結果を改ページする必要があるということです。 私は3つの結果の後にulを閉じてから、再び開きたいと思っています。ここjsonを順序付けられていないリストで解析する

は私のコードです:

$.getJSON('/it_IT/eni_nel_mondo/components/menu/comunicati.json', function(data) { 

      var list = []; 

      $.each(data.items, function(i, c) { 
      list.push('<li><a href="#"><div class="title"><div class="data"><span class="number">'+c.day+'</span><span class="month">'+c.month+'</span></div><h4>'+c.title+'</h4></div><p>'+c.abstract+'</p></a></li>'); 
      }); 

      $('<ul/>', { 
      'class': 'results', 
      html: list.join('') 
      }).appendTo('.wrap .items'); 
     }); 

任意のヘルプ?

私はこのような解決:私はこれが誰かの役に立つことを願ってい

$.getJSON('/it_IT/eni_nel_mondo/components/menu/comunicati.json', function (data) { 
     var list = []; 
     var counter = 0; 
     $.each(data.items, function (i, c) { 
      counter++; 
      list.push('<li><a href="#"><div class="title"><div class="data"><span class="number">' + c.day + '</span><span class="month">' + c.month + '</span></div><h4>' + c.title + '</h4></div><p>' + c.abstract + '</p></a></li>'); 
      if (counter != 0 && counter % 3 == 0) { 
       $('<ul/>', { 
        'class': 'results', 
        html: list.join('') 
       }).appendTo('.wrap .items'); 
       list = []; 
      } 
     }); 
     if (counter % 3 != 0 && list.length > 0) { 
      $('<ul/>', { 
       'class': 'results', 
       html: list.join('') 
      }).appendTo('.wrap .items') 
     } 

。応答のためにAaron Rayにthnx、私は私の仕事が既に終わったとき最後のものを見た。

+0

したがって、新しいページを読み込まずにulのページを変更したいのですか?言い換えれば、30個のアイテムをつかむ場合は、ulの中に一度に3つずつ表示し、次の/前のナビゲーションを使って1つのulを隠し、次のulを開きたいと思うでしょうか? –

+0

右! 私は既にulsを管理するプラグインを持っています。 私の問題は解析中です: 3個のアイテムの後に閉じて、それを閉じる必要がありますが、1 ulしか解析しません。そのようなサイクリング... – junray

+0

カスタムプラグインですか、それともダウンロードしたプラグインですか?あなたはちょうど1 ulを作って、それにすべてのあなたの李を加えて、それに応じて李を隠す/表示することができませんでしたか? –

答えて

1

私は個人的にそのプラグインで働いていないが、あなたは、あなたが働いて、私はこの問題は、コードのこの部分であると考えることを持っていることを確信している場合:

 $('<ul/>', { 
     'class': 'results', 
     html: list.join('') 
     }).appendTo('.wrap .items'); 

私はあなたのリストの配列が含まれていると仮定していますすべてのデータは一度に3つのアイテムを返すだけではありません。したがって、list.join( '')はすべての単一項目をhtmlにダンプします。リストをループし、モジュラス演算子を使用してulを作成する必要があります。その後、それらをコンテナ(おそらくスクロール可能なアイテムコンテナ)に追加します。

var html = "<ul>"; 
for(i = 0; i < list.length; i++) 
{ 
    if(i % 3 == 0 && i > 0) { 
     html += "</ul><ul>"; 
    } 
    html += "<li>" + jsonData + "</li">; 
} 
html += "</ul>"; 

$("#items").append(html); 
+0

tharx Aaron、私は別の方法で問題を解決しました、私はすでに完了したときにこれを見ました。とにかくthnx – junray

関連する問題