我有以下简单的jquery片段
$(document).ready(function () {
$.ajax({
url:"myjson.json",
dataType: 'json',
success:function(json){
$.each(json, function() {
alert("test");
});
},
error:function(){
},
});
});
结果可以返回1000的结果 - 我只想要前20个例子。我最好怎么做?
答案 0 :(得分:5)
.each()
的回调有一个参数index
,它是原始集合中的索引。您可以通过从回调中返回false来突破迭代。
所以你会做类似的事情:
$.each(json, function(index) {
if(index < 20)
alert("test");
else
return false;
});
正如其他人所评论的那样,最好是这个服务器端,但是你可能无法访问服务器端代码?
答案 1 :(得分:3)
如果您真的想(或必须)执行此客户端,您可以通过在特定迭代时返回$.each
来中断false
循环。
有关如何执行此操作的基本示例,请参阅 this fiddle 。
在你的情况下会导致:
success:function(json){
$.each(json, function(index) {
alert("test");
if (index === 19){return false}
});
}
另见 the docs :
我们可以在特定的迭代中打破$ .each()循环 回调函数返回false。返回非假是与a相同 在for循环中继续声明;它将立即跳到下一个 迭代。