如何在Javascript中将文本附加到函数内的变量?

Tig*_*ger 1 javascript prototypejs global-scope

var err = '';

err += 'err a';
myString = 'Blah';
new Ajax.Request('/check_me.php',
    {
        method:'get',
        parameters: {
                'string': myString
            },
            evalScripts: true,
            onComplete: function(t){
                var response = t.responseText;
                if (response == false) {
                    //do nothing
                } else {
                    err += 'err b.\n';
                    //alert(err);
                }
            }
        });

err+= 'err c';

alert(err);
Run Code Online (Sandbox Code Playgroud)

在上面,它应警告"err a"+"err b"+"err c".但我只是得到"错误"+"错误".如果我尝试使用oncomplete警告(错误),那么我可以看到文本被附加到它之前的任何值.在这种情况下,"错误"+"错误b".如果我关闭此警告框,则最后一个警告框只显示a和c.

所以它是从全局变量中读取值而不是写入它.

如何使其工作,即将其设置为"b"?

谢谢

kar*_*m79 5

Ajax请求是异步发生的,因此在调度ajax调用之后,页面上的Javascript执行将继续,无论是否已返回响应.

因此,当您的脚本警告err变量时,您获得的输出不是您所期望的,因为onComplete尚未调用.