2012-05-12 45 views
3

我們使用jQuery,jQuery的模板和Wufoo項目jQuery的API來顯示我們的表單中的數據前10名,使用下面的代碼:只顯示在jQuery的模板

<div id="people">   
    <ul> 
     <script id="attendeeTemplate" type="text/x-jquery-tmpl"> 
      <li> 
       <h4>${Field1}</h4> 
       ${Field3} minutes 
      </li> 
      </script> 
    </ul> 
</div> 

這工作得很好,但是我們想限制它只顯示前10個條目。現在它顯示數據庫中的每個條目(使用下面的JavaScript和API進行排序)。請注意,我們只嘗試顯示前10位,按最高分鐘數排序。

這裏是JavaScript:

<script> 
    function processEntries(data) { 
     $.each(data.Entries, function(entriesIndex, entriesObject) { 
      // Make sure this entry has all the required bits 
      if (entriesObject.Field1 && entriesObject.Field3) { 
       $("#attendeeTemplate").tmpl(entriesObject).appendTo("#people ul"); 
      } 
     }); 
    }; 

    $.wufooAPI.getEntries({ 
     "callback" : processEntries,    // Name of custom function declared above 
     "formHash" : "BLAH",     // Found by clicking "Code" button from the Form Manager, then the "API Information" button 
     "sortID" : "Field3",     // Found by clicking "Code" button from the Form Manager, then the "API Information" button 
     "sortDirection" : "DESC",     // Found by clicking "Code" button from the Form Manager, then the "API Information" button 

    }); 
</script> 

如何將其限制在排名前10位將是超級有幫助的任何想法!

+0

好的答案,謝謝大家。 – Nietzsche

回答

1

假設data.Entries是一個數組,你可以使用Array.slice()

$.each(data.Entries.slice(0, 9), function(entriesIndex, entriesObject) { 
+0

工作很好,就像在這裏所有其他快速答案一樣。謝謝! – Nietzsche

3

這應該工作:

data.Entries.slice(0,9); 
2

如果你不能使用該數據庫施加限制,仍然可以進行修復像這樣:

function processEntries(data) { 
    var i = 0; 
    $.each(data.Entries, function(entriesIndex, entriesObject) { 
     // Make sure this entry has all the required bits 
     if (entriesObject.Field1 && entriesObject.Field3 && i<10) { 
      $("#attendeeTemplate").tmpl(entriesObject).appendTo("#people ul"); 
      i++; 
     } 
    }); 
}; 

注意:這asumes你有previou以某種方式狡猾地對待敵人

+0

來自@MoritzPetersen的解決方案好得多,我不知道切片,我仍然爲每個條目添加一個循環後,第十 –