2009-05-28 72 views
4

這是我的第一個JQuery體驗,我在相當緊迫的期限。這有點令人尷尬的問題,但是這裏有。我正在調用一個返回字符串列表的Web服務(它工作並返回OK)。代碼低於如何迭代使用JQuery從Web服務返回的字符串列表

$(document).ready(
    function() 
    { 
     $.ajax({ 
      type: "POST", 
      contentType: "application/json; charset=utf-8", 
      url: "CatList.asmx/GetCatergoies", 
      data: "{}", 
      dataType: "json", 
      success: onActionCompleted 
     }); 
    } 
) 

function onActionCompleted(data) { 

    var resultData = data['d']; 
    alert(resultData); 
} 

警報會從Web服務中產生逗號分隔的字符串結果。我無法弄清楚我的生活,我可以如何迭代結果。當我做這樣的事情:

resultData.each(
    alert(this) 
) 

所有我在Firebug得到的是這樣的錯誤:

resultData.each is not a function 

任何指針?

回答

1

謝謝!沒有反饋,我就無法解決它。我仍然不完全確定resultData是什麼格式。我在代碼上做了一些複製和粘貼操作,所以不確定哪些數據['d']將列表轉換爲json術語。

當我試圖在resultdata分割我得到這個錯誤在Firebug:

resultData.split不是一個函數

在我剛纔用的resultdata的。每個$()不分裂結束它的工作。

function onActionCompleted(data) { 

    var resultData = data['d']; 
    $.each(resultData, function() { 
     alert(this) 
    }) 
} 
4

考慮string.split()替代的jQuery:

var items = results.split(','); 

for(var i = 0; i < items.length; i++) { 
    alert(items[i]); 
} 
7

使用Array.split()將產生一個數組:

var string = "red,blue,green,orange" 

$.each(string.split(','), function(){ 
    alert(this) 
}) 
4

聽起來像是你的web服務給你一個CSV字符串。將它拆分成一個數組,將jQuery包裝起來,併爲每個元素添加回調函數,如下所示:

$(resultData.split(",")).each(function() { 
    alert(this); 
}); 
+0

每個也可以在普通數組上工作。所以$ .each(resultData.split(「,」),function(){});也應該工作。 – Ikke 2009-05-28 11:31:36

+0

事實上,爲了便於閱讀,我只是比$ .each(array,callback)更喜歡$(array).each(callback)語法。 – Magnar 2009-05-28 11:35:11