2010-04-13 62 views
4

对不起,如果这已发布多次。但我已经尝试了很多变化,但仍然无法正常工作。该HTML从jQuery AJAX调用罚款回来,我试图删除从响应页眉和页脚使用:如何解析jquery ajax xhtml响应?

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

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

我读过这篇文章,你不能拉完整的XHTML文档:jquery ajax parse response text。但我找不到答案的引用了,也许已经过时了?

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

非常感谢, 史蒂夫

回答

4

这个工作对我来说:

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

你从你的AJAX调用接收到的数据不是你的DOM树的一部分,所以你不能使用JQuery函数调用来操纵它。您可以使用文本处理函数,您可以使用JSON,或者您也可以将您的响应附加到DOM。

2

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

0

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

例如加载从简洁(wellformed)html文档内容的div你可以使用

$( “#DIV到负载来”)。负载(“HTML-DOC对负载的。 html #content“,function(){ // do something something });

2

它在接收文档中有<div>标签时有效。

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

看到一个非常简单的proof of concept

0

你必须保证你的HTML DOM良好格式化。

尝试最简单的HTML

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