如何在jquery中限制json数据上的每个循环?

时间:2012-09-28 22:15:36

标签: jquery json each

是否有一种很好的方法可以使用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
});​

6 个答案:

答案 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)

你可以试试这个

$.each(data, function(i, item) {
    if(i>2) return false;
    alert(item.PageName);
});​

DEMO

答案 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;
  }
});