如何解析jquery ajax xhtml响应?

时间:2010-04-13 21:28:02

标签: parsing jquery jquery-selectors

很抱歉,如果已多次发布此内容。但我尝试了很多变化,它仍然无法正常工作。 HTML从jquery AJAX调用返回正常,我试图使用以下命令从响应中删除页眉和页脚:

// none of these work for me
$("#content", data);
$("#content", $(data));
$(data).find("#content").html()

我通过检查$(数据)并使用alert打印出数据文本来断开响应以验证#content是否存在。我也尝试使用“body”或“a”作为选择器,但它总是以未定义的方式返回。

我在这篇文章中读到你无法提取完整的XHTML文档:jquery ajax parse response text。但是我再也找不到答案的引用了,也许它已经过时了?

有没有人遇到过这个问题?

非常感谢, 史蒂夫

6 个答案:

答案 0 :(得分:4)

这对我有用:

$(data).filter("#content");

答案 1 :(得分:2)

您需要一个div来附加您的数据。像$("#response").replaceWith($(data).find('#content'));一样 这应该工作

答案 2 :(得分:2)

当收到的文档中有<div>标记时,它会起作用。

E.g。 <body><div> your content </div></body>

查看非常简单的proof of concept

答案 3 :(得分:1)

您从AJAX调用中收到的数据不是DOM树的一部分,因此您无法使用JQuery函数调用来操作它。您可以使用文本操作函数,可以使用JSON,也可以将响应附加到DOM。

答案 4 :(得分:0)

您使用的是get方法吗?或者,您可以使用jQuery加载方法,您可以在其中提供要加载的页面片段。

例如,从正确的html文档中加载内容div,您可以使用

$(“#div-to-load-to”)。load(“html-doc-to-load-from.html #content”,function(){     //做一点事 });

答案 5 :(得分:0)

您必须保证HTML dom格式正确。

尝试最简单的HTML

<html>
<head>
<title>title here</title>
</head>
<body>
<div>
    <div>hello</div>
        <span id="s">span content</span>
    </div>
</body>