我正在尝试使用 id=OCRID 更新一个 div,这是我页面上包含一些数据的一个 div。我首先使用了以下 URL 中的代码,但是我们切换到了 jQuery 方法。 <-Ugly ajax-> .切换到这个。使用警报,我看到成功返回的消息是正确的消息,但 document.getElementById(OCRID).innerHTML=msg
不会更改值。我有一些其他的 javascript 可以做一些类似的事情,但不使用来自服务器的数据。请帮忙?
$.ajax({
type: "GET",
url: url,
data: "q="+OCRID+"&newstatus="+document.getElementById(OCRID).value,
success: function(msg, OCRID){
document.getElementById(OCRID).innerHTML=msg;
}
});
最佳答案
首先你提到的OCRID
是div
的一个id,你用过
document.getElementById(OCRID).value // a div doesn't have a value attribute
它返回 HTML
元素的值,但 div
不包含任何值属性,并且在您使用的成功回调中
success: function(msg, OCRID){
document.getElementById(OCRID).innerHTML=msg; // innerHTML is right for a div
}
来自jQuery文档:
success(data, textStatus, jqXHR)
A function to be called if the request succeeds. The function gets passed three arguments: The data returned from the server, formatted according to the dataType parameter; a string describing the status; and the jqXHR (in jQuery 1.4.x, XMLHttpRequest) object. As of jQuery 1.5, the success setting can accept an array of functions. Each function will be called in turn. This is an Ajax Event.
在这种情况下,你不应该使用 OCRID
作为第二个参数,因为 jQuery
在 success
回调中使用了 3 个参数,这些基本上是data, textStatus, jqXHR
在这种情况下 data
是你的 msg
,OCRID
在这种情况下变成 textStatus
是响应的状态信息,第三个参数是xhr
对象。所以应该是
$.ajax({
type: "GET",
url: url,
data: "q="+OCRID+"&newstatus="+$('#'+OCRID).html(), // or text()
success: function(msg){
$('#'+OCRID).html(msg); // or text()
}
});
还要记住,您的 OCRID
看起来像一个变量,它应该在您的 ajax
调用范围内可用,如果这不是一个变量,那么它应该是 $('#OCRID')
在下面给出的两个地方
$('#OCRID').html();
并在成功回调中
$('#OCRID').html(msg);
关于php - jQuery/ajax 没有更新页面上的 div,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14145258/