如何使用JQuery迭代从Web服务返回的字符串列表

时间:2009-05-28 11:20:47

标签: jquery web-services

这是我的第一次JQuery体验,而且我的截止日期非常紧迫。这是一个令人尴尬的问题,但这里有。我正在调用一个返回字符串列表的Web服务(工作并返回OK)。代码如下

$(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

任何指针?

4 个答案:

答案 0 :(得分:7)

使用 Array.split() 会产生一个数组:

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

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

答案 1 :(得分:5)

考虑string.split()而不是jQuery:

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

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

答案 2 :(得分:4)

听起来你的webservice给了你一个csv-string。将它拆分为一个数组,在它周围包装jQuery并为每个元素添加一个回调函数,如下所示:

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

答案 3 :(得分:2)

谢谢!没有反馈,我就无法解决问题。我还不完全确定resultData的格式是什么。我对代码进行了一些复制和粘贴,因此不确定哪些数据['d']将列表转换为json术语。

当我在resultdata上尝试拆分时,我在Firebug中遇到了这个错误:

resultData.split不是函数

最后我在resultdata上使用$ .each()而不进行拆分,并且它有效。

function onActionCompleted(data) {

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