我有以下简单的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
循环。
有关如何执行此操作的基本示例,请参见this fiddle。
在您的情况下,这将导致:
success:function(json){
$.each(json, function(index) {
alert("test");
if (index === 19){return false}
});
}
另请参阅文档:
我们可以通过使回调函数返回false。返回非false与for循环中的continue语句;它将立即跳到下一个迭代。