如何操纵ajax响应文本

时间:2011-07-05 10:59:51

标签: ajax httpresponse

我有一个像这样的ajax代码:

var req = new XMLHttpRequest();
req.open('GET', 'http://www.example.org/', false); req.send(null);
if(req.status == 200)
var response = http_attendance.responseText; document.getElementById('divAttendance').innerHTML = response;

当我在页面上得到结果时,FF浏览器会在'divAttendance'上显示DOM元素。如果我想对结果放置一些jquery效果,我就无法做到。

使用firebug可以清楚地看到DOM元素。但是,当我生成该页面的源代码时,'divAttendance'上没有repsonse文本。它像我这样空白:

<html>
....
..
<div id="divAttendance"></div>
..
..
</html>

如何操纵或对结果产生影响???

1 个答案:

答案 0 :(得分:0)

好吧,如果您使用的是jQuery,那么您应该使用jquery ajax http://api.jquery.com/jQuery.ajax/

无论如何,如果您使用AJAX响应填充div,那么它将不会显示使用“View Source”,而是您将不得不使用像firebug这样的工具。

你的div最初应该如下所示

<div id="divAttendance" style="display:none"></div>

并且您的javascript应该包含以下内容

.....
document.getElementById('divAttendance').innerHTML = response;
$("#divAttendance").show("slow");

对于这样的操作,jQuery加载是简单而有用的功能,请看一下 http://api.jquery.com/load/

您的具体示例可以重写为

<html>
....
IMPORT JQUERY.JS
<script language="javascript">
$('#divAttendance').load('http://www.example.org/', function() {
 $("#divAttendance").show("slow");
});     
</script>
..
<div id="divAttendance" style="display:none"></div>
..
..
</html>