我目前正在执行一项任务,其中涉及使用 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/