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

标签 javascript jquery ajax

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

param.html(str);

不会更改 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);
}

这是我如何调用我的方法:

setTimeout(function() {
    updateChat('#chatbox');
}, 1000);

最佳答案

由于您正在执行异步请求,因此在 ajax 请求完成并调用成功处理程序之前,不会设置 str。将 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);
        }
    });

}

改变这个

setTimeout(function() {
    updateChat('#chatbox'); //<----
}, 1000);

setTimeout(function() {
    updateChat($('#chatbox'));
}, 1000);

关于javascript - AJAX 请求不会更改 div 中的文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30856731/

相关文章:

javascript - 使用 mocha 和 chai 的 bool 析取 (OR)

javascript - 访问没有 "getElementById"的 Canvas 元素

javascript - 更改命令的位置

javascript - 我们如何使用 JavaScript 发送 HTTP POST 请求?

javascript - vuejs 复制数据对象并删除属性也会从原始对象中删除该属性

javascript - 使用jquery根据第一个选项设置第二个选项值

javascript - 使用jquery解析其他url的标题

javascript - 我怎样才能得到ajax返回的 "Parse"数组?

javascript - 使用 jQuery 从输入获取关联数组

javascript - jquery ui可排序修改创建时的html