2009-05-28 70 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