9

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
});​
4

6 に答える 6

31
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を返すと、それぞれが停止します。

ドキュメントから:

コールバック関数がfalseを返すようにすることで、特定の反復で$ .each()ループを中断できます。false以外を返すことは、forループのcontinueステートメントと同じです。すぐに次の反復にスキップします。

于 2012-09-28T22:20:40.390 に答える
8

これを試して

$.each(data.slice(0,3), function(i, item) {
    alert(item.PageName);
});​
于 2012-09-28T22:19:02.910 に答える
2

あなたはこれを試すことができます

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

デモ

于 2012-09-28T22:18:13.460 に答える
0
$.each($(data).slice(0,3), function(i,item){
  console.log("\t",item.Id);
});
于 2012-09-28T22:31:02.673 に答える
0

forループを使用してループすることもできます

これがその方法です

     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);
     }
于 2012-09-28T22:40:08.790 に答える
-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;
  }
});
于 2012-09-28T22:24:58.153 に答える