是否有一种很好的方法可以使用jquery每个循环仅循环json对象的前3项?
我在考虑相当于.slice(start,end)函数。
var data = [
{"Id": 10004, "PageName": "club"},
{"Id": 10040, "PageName": "qaz"},
{"Id": 10059, "PageName": "ee"},
{"Id": 10089, "PageName": "dd"},
{"Id": 10095, "PageName": "hh"}
];
$.each(data, function(i, item) {
alert(item.PageName);
// somehow break at item 3
});
答案 0 :(得分:29)
var data = [
{"Id": 10004, "PageName": "club"},
{"Id": 10040, "PageName": "qaz"},
{"Id": 10059, "PageName": "ee"},
{"Id": 10089, "PageName": "dd"},
{"Id": 10095, "PageName": "hh"}
];
$.each(data, function(i, item) {
alert(item.PageName);
return i<2;
});
每次返回false时都会停止。
来自文档:
我们可以在特定的迭代中打破$ .each()循环 回调函数返回false。返回非假是与a相同 在for循环中继续声明;它将立即跳到下一个 迭代。
答案 1 :(得分:7)
试试这个
$.each(data.slice(0,3), function(i, item) {
alert(item.PageName);
});
答案 2 :(得分:2)
答案 3 :(得分:0)
$.each($(data).slice(0,3), function(i,item){
console.log("\t",item.Id);
});
答案 4 :(得分:0)
您也可以尝试使用for-loop
循环播放它这是怎么做的
for(var i =0;i<3;i++){
alert("Id is"+d[i].id) ;
}
要遍历整个Json数组,请使用以下
for(var i =0;i<d.length;i++){
alert("Id is"+d[i].id);
}
答案 5 :(得分:-1)
$.each(data, function(i){
//i is 0 based, so 3 is really 2.
if(i == 2){
//exit the loop on the 3rd iteration of the object.
return false;
}
});