只返回$ .ajax传递的JSON数据的前20个结果?

我有以下简单的jquery片段

$(document).ready(function () { $.ajax({ url:"myjson.json", dataType: 'json', success:function(json){ $.each(json, function() { alert("test"); }); }, error:function(){ }, }); }); 

结果可以返回1000的结果 – 我只想要前20个例子。 我最好怎么做?

.each()的回调有一个参数index ,它是原始集合中的索引。 您可以通过从回调中返回false来突破迭代。

所以你会做类似的事情:

 $.each(json, function(index) { if(index < 20) alert("test"); else return false; }); 

正如其他人所评论的那样,做这个服务器端更好,但也许你无法访问服务器端代码?

如果你真的想(或必须)做这个客户端,你可以通过在某个迭代返回false来打破$.each循环。

请参阅此小提琴 ,了解如何执行此操作的基本示例。

在你的情况下会导致:

 success:function(json){ $.each(json, function(index) { alert("test"); if (index === 19){return false} }); } 

另见文档

我们可以通过使回调函数返回false来打破特定迭代的$ .each()循环。 返回非false与for循环中的continue语句相同; 它将立即跳到下一次迭代。