2011-06-17 49 views
0

我有這樣的事情:JQuery的循環數據

$("#btn").click(function (event) { 
       $.getJSON(url, 
       function (data) { 
        // i using this which works fine... 
        //alert(data[0].Id); 
        //alert(data[0].Name); 
        //alert(data[0].Tion); 
        //alert(data[0].Path); 
        //alert(data[0].Flag); 

        //how do i loop here 
        $(data).each(function() { 
         alert(data); 
        }); 

       }); 
      }); 
+0

它給你一個錯誤或什麼?有什麼問題? –

+3

在評論中提出你的問題是可愛的,但也非常直觀。如果你明確地在代碼塊之外提問你的問題會更好。 –

回答

1

像這樣:

$.each(data, function(idx, dataItem) { 
    alert(dataItem.Id); 
    alert(dataItem.Name); 
    alert(dataItem.Tion); 
    alert(dataItem.Path); 
    alert(dataItem.Flag); 
}); 

或者,更簡潔的版本,其中this被自動分配給各個元素data爲你:

$.each(data, function() { 
    alert(this.Id); 
    alert(this.Name); 
    alert(this.Tion); 
    alert(this.Path); 
    alert(this.Flag); 
}); 
+0

1+ thanks ...... –

1

使用jQuery.each()[docs]方法,而不是each()[docs]方法,以枚舉不是jQuery的對象集合。

$.each(data,function() { 
    alert(this); 
}); 

...或者如果您的集合來自JSON對象,則可以使用for/in聲明。

for(var key in data) { 
    alert(data[key]); 
} 

...或者對於JSON數組,使用for語句。

for(var i = 0, len = data.length; i < len; i++) { 
    alert(data[i]); 
} 
0

您可以使用正常for循環。

如果你真的想使用jQuery,你需要調用靜態版本:

$.each(data, function(index) { ... }); 
2
 $("#btn").click(function (event) { 
      $.getJSON(url, 
      function (data) { 

       $(data).each(function(index, dataR) { 
        alert(dataR.Id); 
        alert(dataR.Name); 
        alert(dataR.Tion); 
        alert(dataR.Path); 
        alert(dataR.Flag); 
       }); 

      }); 
     }); 
+0

+1我不認爲它會向原型'.each()'發送一個非DOM元素的數組,但它似乎確實如此。 – user113716

+0

1+謝謝...... –

+0

@Abu,沒問題^ _^ – Neal

0

使用

$.each(data, function(){ 
    alert(data); 
}); 
+0

Hooo好像patrick dw已經在我之前發佈了這一秒;) – Tim

0

each函數接受參數,收集迭代,並一個函數。指定的函數可以進一步具有迭代索引以及值。

你的目的,這樣的事情應該助陣:

$.each(data, function() { 
    alert(this); 
});