我有一个textarea,需要的值是用换行符分隔的多个字符串。成功后,仅捕获最后一个stringf。这是我的代码:

var stringf;
    var lines = $('#bulk_string').val().split('\n');
        for(var i = 0;i < lines.length;i++){
            if(lines[i].length > 0){
                stringf = lines[i];
                $.ajax({
                type: "POST",
                url: "ajaxuser.php",
                data: 'do=submit&info='+stringf,
            success: function(data)
            {
                $('#string_list').append('<li>'+stringf+' '+data</li>');
            }
        });
    }
}

最佳答案

您的for循环将立即完成几乎所有循环,但是您的AJAX调用将需要一些时间来处理并返回给您。因此,当您的AJAX调用完成时,stringf值将被设置为循环的最后迭代中为其分配的任何值。

为了解决这个问题,您只需要在stringf循环中声明for即可:

for(var i = 0;i < lines.length;i++) {
    var stringf;
    ...
}

关于javascript - jQuery ajax成功后获取字符串,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/29165008/

10-09 23:07