1

我想遍历一类元素并使用每个特定元素的一些信息执行 ajax 调用,并对结果进行一些操作。

这是我的jQuery代码

$(".Topic").each(function () {
    var identify = $(this).attr('id');
    var prestart = identify.indexOf('_');
    var start = prestart + 1;
    var end = identify.length;
    var position = identify.substr(start, end);

    var trend = $("#Topic_" + position).text();

    $.ajax({
        type: "POST",
        url: "Results.aspx/CheckIfScheduled",
        data: "{\"Trend\":" + "\"" + trend + "\"" + "}",
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        success: function (results) {
            var str = results, obj = JSON.parse(str);
            if (str.Scheduled == true) {
                $("#IsSch_" + position).text(str.Date);
                $("#Sch_" + position).hide();
                $("#Cal_" + position).hide();
            }
        },
        error: alert("Error")
    });

});

后端代码只返回我在成功函数中使用的序列化字符串。我遇到的问题是它首先遍历每个类元素,一旦完成迭代,它就开始使用它存储的最后一个值来执行所有成功函数实例。

我尝试设置 async:false 但我不断收到错误“unexpected token o”

4

1 回答 1

0

我不知道它是否会起作用,但你可以尝试在成功回调中放置一个位置......

$.ajax({
    type: "POST",
    url: "Results.aspx/CheckIfScheduled",
    data: "{\"Trend\":" + "\"" + trend + "\"" + "}",
    contentType: "application/json; charset=utf-8",
    dataType: "json",
    success: function (results) {
        var positionInner = position;
        var str = results, obj = JSON.parse(str);
        if (str.Scheduled == true) {
            $("#IsSch_" + positionInner).text(str.Date);
            $("#Sch_" + positionInner).hide();
            $("#Cal_" + positionInner).hide();
        }
    },
    error: alert("Error")
});
于 2013-08-08T21:00:47.333 回答