【发布时间】:2011-10-01 15:34:02
【问题描述】:
我有一个使用 jQuery 的 ajax 函数,它定义了一个要调用的错误函数。当服务器上发生错误时,此错误函数将运行。 “jqXHR”中传递的变量之一包含一个名为 responseText 的属性。我想将此响应文本转储到页面上的 div 中,但响应文本包含一个完整的 HTML 文档。有什么方法可以像遍历常规 DOM 一样使用 jQuery 遍历这个包含 HTML 的变量?
$.ajax({
blah blah blah...,
error: function (jqXHR, textStatus, errorThrown)
{
var errorText = $(jqXHR.responseText).find('body').html();
// The above line does not work. errorText is NULL.
$('#mainContent').html(errorText);
}
});
我想做类似上面代码 sn-p 的事情,但我这样做的方式不起作用。有没有办法遍历这个变量,就好像它是一个我可以用 jQuery 导航的 DOM?
更新
这是console.log($(jqXHR.responseText))
【问题讨论】:
-
你能不能做一个
console.log($(jqXHR.responseText));看看dom 是什么样子的...我知道jQuery 通常默认选择body所以你可能不需要使用额外的$()和 jsut 需要做errorText = $(jqXHR.responseText).html();或errorText = $('#mainContent', jqXHR.responseText).html();你的回复是text/html而不是 xml 内容类型,对吧? -
是的,响应是文本/html。出于某种原因,这仅在我不使用
.html()时才有效,但是除了 BODY 标记的内容之外,我还获得了 HEAD 标记的内容。
标签: javascript jquery html ajax dom