Как перебрать список строк, возвращаемых из веб-сервиса, используя JQuery - PullRequest
4 голосов
/ 28 мая 2009

Это мой первый опыт работы с JQuery, и у меня довольно сжатые сроки. Это немного смущающий вопрос, но здесь идет. Я звоню в веб-сервис, который возвращает список строк (который работает и возвращает ОК). Код ниже

$(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);
 }

Предупреждение выдает запятую строку результатов из веб-службы. Я не могу понять на всю жизнь, как я могу перебирать результаты. Когда я делаю что-то вроде этого:

resultData.each(
   alert(this)
)

Все, что я получаю в Firebug, это ошибка:

resultData.each is not a function

Есть указатели?

Ответы [ 4 ]

7 голосов
/ 28 мая 2009

Использование Array.split () создаст массив:

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

$.each(string.split(','), function(){
  alert(this)
})
5 голосов
/ 28 мая 2009

Рассмотрим string.split() вместо jQuery:

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

for( var i = 0; i < items.length; i++ ) {
  alert( items[i] );
}
4 голосов
/ 28 мая 2009

Похоже, ваш веб-сервис дал вам CSV-строку. Разделите его на массив, оберните вокруг него jQuery и добавьте функцию обратного вызова для каждого из элементов следующим образом:

$(resultData.split(",")).each(function () {
    alert(this);
});
2 голосов
/ 28 мая 2009

Спасибо! Я бы не смог решить это без обратной связи. Я до сих пор не до конца уверен, что представляет собой формат resultData. Я сделал несколько копий и вставок в код, поэтому не уверен, в какие данные ['d'] преобразуется список в терминах json.

Когда я попытался разделить данные результата, я получил эту ошибку в Firebug:

resultData.split не является функцией

В конце я просто использовал $ .each () для результирующих данных без разделения, и это сработало.

function onActionCompleted(data) {

    var resultData = data['d'];
    $.each(resultData, function() {
        alert(this)
    })
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...