AJAX请求不会更改div中的文本

rsh*_*hah 0 javascript ajax jquery

我目前正在执行一项任务,包括使用php从文件中获取信息并使用AJAX返回它.当我使用警报对此进行测试时,数据将被发送,但由于某种原因,该行:

param.html(str);
Run Code Online (Sandbox Code Playgroud)

不会改变div中的文字...

这是我的功能:

function updateChat(param) {
    var dataString = 'update=true';
    var str = '';
    $.ajax({
        type: "POST",
        url: "inc/chat.php",
        data: dataString,
        success: function(data) {
            str = data;
        }
    });
    param.html(str);
}
Run Code Online (Sandbox Code Playgroud)

以下是我调用方法的方法:

setTimeout(function() {
    updateChat('#chatbox');
}, 1000);
Run Code Online (Sandbox Code Playgroud)

Sha*_*oli 5

由于您正在执行异步请求,str因此在ajax请求完成并调用成功处理程序之前不会设置.param.html(str)在ajax成功处理程序内移动然后它将更新div中的文本.

function updateChat(param) {
    var dataString = 'update=true';
    var str = '';
    $.ajax({
        type: "POST",
        url: "inc/chat.php",
        data: dataString,
        success: function(data) {
           param.html(data);
        }
    });

}
Run Code Online (Sandbox Code Playgroud)

改变这个

setTimeout(function() {
    updateChat('#chatbox'); //<----
}, 1000);
Run Code Online (Sandbox Code Playgroud)

setTimeout(function() {
    updateChat($('#chatbox'));
}, 1000);
Run Code Online (Sandbox Code Playgroud)